Wie werden logarithmische Achsen in Matplotlib gezeichnet

Suraj Joshi 18 Juli 2021
  1. set_xscale() oder set_yscale() Funktionen
  2. semilogx() oder semilogy() Funktionen
  3. Funktion loglog()
Wie werden logarithmische Achsen in Matplotlib gezeichnet

Um Semilogy-Graphen in Matplotlib zu zeichnen, verwenden wir die Funktionen set_xscale() oder set_yscale() und semilogx() oder semilogy(). Wenn wir beide Achsen in der logarithmischen Skala einstellen müssen, verwenden wir die Funktion loglog().

set_xscale() oder set_yscale() Funktionen

Wir verwenden die Funktionen set_xscale() oder set_yscale(), um die Skalierungen der X-Achse bzw. der Y-Achse einzustellen. Wenn wir log oder symlog Skala in den Funktionen verwenden, werden die entsprechenden Achsen als logarithmische Skalen aufgetragen. Die Verwendung der logarithmischen Skala mit der Funktion set_xscale() oder set_yscale() erlaubt nur positive Werte, indem sie uns erlaubt, mit negativen Werten umzugehen, während die Verwendung der symlog-Skala sowohl positive als auch negative Werte akzeptiert.

import pandas as pd
import matplotlib.pyplot as plt

date = ["28 April", "27 April", "26 April", "25 April", "24 April", "23 April"]

revenue = [2954222, 2878196, 2804796, 2719896, 2626321, 2544792]


company_data_df = pd.DataFrame({"date": date, "total_revenue": revenue})
company_data = company_data_df.sort_values(by=["total_revenue"])
fig = plt.figure(figsize=(8, 6))
plt.scatter(company_data["total_revenue"], company_data["date"])
plt.plot(company_data["total_revenue"], company_data["date"])
plt.xscale("log")
plt.xlabel("Total Revenue")
plt.ylabel("Date")
plt.title("Company Growth", fontsize=25)
plt.show()

Ausgabe:

logarithmische Achsen in Matplotlib mit der Funktion scalex() plotten

Um die logarithmische Achse entlang der Y-Achse einzustellen, könnten wir die Skalierung der Y-Achse mit der Funktion yscale() auf log setzen:

import pandas as pd
import matplotlib.pyplot as plt

date = ["28 April", "27 April", "26 April", "25 April", "24 April", "23 April"]

revenue = [2954222, 2878196, 2804796, 2719896, 2626321, 2544792]


company_data_df = pd.DataFrame({"date": date, "total_revenue": revenue})
company_data = company_data_df.sort_values(by=["total_revenue"])
fig = plt.figure(figsize=(8, 6))
plt.scatter(company_data["date"], company_data["total_revenue"])
plt.plot(company_data["date"], company_data["total_revenue"])
plt.yscale("log")
plt.xlabel("Date")
plt.ylabel("Total Revenue")
plt.title("Company Growth", fontsize=25)
plt.show()

Ausgabe:

logarithmische Achsen in Matplotlib mit der Funktion yscale() darstellen

Um logarithmische Werte entlang beider Achsen einzustellen, verwenden wir sowohl xscale() als auch yscale() Funktionen:

import pandas as pd
import matplotlib.pyplot as plt

x = [10, 100, 1000, 10000, 100000]
y = [2, 4, 8, 16, 32]

fig = plt.figure(figsize=(8, 6))
plt.scatter(x, y)
plt.plot(x, y)
plt.grid()
plt.xscale("log")
plt.yscale("log", basey=2)
plt.xlabel("x", fontsize=20)
plt.ylabel("y", fontsize=20)
plt.title("Plot with both log axes", fontsize=25)
plt.show()

Ausgabe:

Plot mit logarithmischer Skala auf beiden Achsen unter Verwendung der xscale- und yscale-Funktion

Hier stellt basey=2 den Logarithmus der Basis 2 entlang der Y-Achse dar.

semilogx() oder semilogy() Funktionen

Die Funktion semilogx() erzeugt ein Diagramm mit Log-Skalierung entlang der X-Achse, während die Funktion semilogy() ein Diagramm mit Log-Skalierung entlang der Y-Achse erzeugt. Die Standardbasis des Logarithmus ist 10, während die Basis mit den Parametern basex und basey für die Funktion semilogx() bzw. semilogy() eingestellt werden kann.

import pandas as pd
import matplotlib.pyplot as plt

date = ["28 April", "27 April", "26 April", "25 April", "24 April", "23 April"]

revenue = [2954222, 2878196, 2804796, 2719896, 2626321, 2544792]


company_data_df = pd.DataFrame({"date": date, "total_revenue": revenue})
company_data = company_data_df.sort_values(by=["total_revenue"])
fig = plt.figure(figsize=(8, 6))
plt.scatter(company_data["total_revenue"], company_data["date"])
plt.plot(company_data["total_revenue"], company_data["date"])
plt.semilogx()
plt.xlabel("Total Revenue")
plt.ylabel("Date")
plt.title("Company Growth", fontsize=25)
plt.show()

Ausgabe:

Darstellung logarithmischer Achsen in Matplotlib mit der Funktion semilogx()

Um logarithmische Werte entlang beider Achsen zu setzen, könnten wir die beiden Funktionen semilogx() und semilogy() verwenden:

import pandas as pd
import matplotlib.pyplot as plt

x = [10, 100, 1000, 10000, 100000]
y = [2, 4, 8, 16, 32]

fig = plt.figure(figsize=(8, 6))
plt.scatter(x, y)
plt.plot(x, y)
plt.grid()
plt.semilogx()
plt.semilogy(basey=2)
plt.xlabel("x", fontsize=20)
plt.ylabel("y", fontsize=20)
plt.title("Plot with both log axes", fontsize=25)
plt.show()

Ausgabe:

graphische Darstellung mit logarithmischem Maßstab auf beiden Achsen unter Verwendung der Funktion semilogx und semilogy

Funktion loglog()

Um eine Log-Skalierung sowohl entlang der X- als auch der Y-Achse vorzunehmen, können wir auch die Funktion loglog() verwenden. Die Basis des Logarithmus für die X-Achse und die Y-Achse wird durch die Parameter basex und basey festgelegt.

import pandas as pd
import matplotlib.pyplot as plt

x = [10, 100, 1000, 10000, 100000]
y = [2, 4, 8, 16, 32]

fig = plt.figure(figsize=(8, 6))
plt.scatter(x, y)
plt.plot(x, y)
plt.loglog(basex=10, basey=2)
plt.xlabel("x", fontsize=20)
plt.ylabel("y", fontsize=20)
plt.title("Plot with both log axes", fontsize=25)
plt.show()

Ausgabe:

Plot mit logarithmischer Skala auf beiden Achsen mit der Funktion loglog

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Matplotlib Axes