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:
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:
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:
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:
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:
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:
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInVerwandter Artikel - Matplotlib Axes
- X-Achse drehen Beschriftungstext in der Matplotlib ankreuzen
- Wie man die Schriftgröße von Tick Labels in Matplotlib einstellt
- Hinzufügen einer y-Achsenbeschriftung zur sekundären y-Achse in Matplotlib
- Wie man einen quadratischen Plot mit gleichen Achsen in Matplotlib erstellt
- Wie man Grenzen für Achsen in Matplotlib setzt