Comment tracer des axes logarithmiques dans Matplotlib
Pour dessiner des graphes semilog dans Matplotlib, nous utilisons les fonctions set_xscale()
ou set_yscale()
et semilogx()
ou semilogy()
. Si nous devons définir les deux axes dans l’échelle logarithmique, nous utilisons la fonction loglog()
.
Fonctions set_xscale()
ou set_yscale()
Nous utilisons les fonctions set_xscale()
ou set_yscale()
pour définir les échelles de l’axe X et de l’axe Y respectivement. Si nous utilisons l’échelle log
ou symlog
dans les fonctions, les axes respectifs sont tracés comme des échelles logarithmiques. L’utilisation de l’échelle log
avec la fonction set_xscale()
ou set_yscale()
n’autorise que les valeurs positives en nous permettant de gérer les valeurs négatives tout en utilisant l’échelle symlog
accepte les valeurs positives et négatives.
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()
Production:
Pour définir l’axe logarithmique le long de l’axe Y, nous pouvons définir l’échelle de l’axe Y comme étant log
avec la fonction yscale()
:
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()
Production:
Pour définir des valeurs logarithmiques le long des deux axes, nous utilisons les fonctions xscale()
et yscale()
:
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()
Production:
Ici, basey=2
représente le logarithme de la base 2
le long de l’axe Y.
Fonctions semilogx()
ou semilogy()
La fonction semilogx()
crée un tracé avec une mise à l’échelle des journaux le long de l’axe X tandis que la fonction semilogy()
crée un tracé avec une échelle logarithmique le long de l’axe Y. La base par défaut du logarithme est 10 tandis que la base peut être définie avec les paramètres basex
et basey
pour la fonction semilogx()
et semilogy()
respectivement.
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()
Production:
Pour définir des valeurs logarithmiques le long des deux axes, nous pourrions utiliser les fonctions semilogx()
et semilogy()
:
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()
Production:
Fonction loglog()
Pour effectuer une mise à l’échelle du journal le long des axes X et Y, nous pouvons également utiliser la fonction loglog()
. La base du logarithme pour l’axe X et l’axe Y est définie par les paramètres basex
et basey
.
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()
Production:
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticle connexe - Matplotlib Axes
- Comment faire pivoter le texte des étiquettes à cocher sur l'axe X dans Matplotlib
- Comment définir la taille de la police des étiquettes à cocher dans Matplotlib
- Comment ajouter une étiquette sur l'axe des y à l'axe des y secondaire dans Matplotlib
- Comment faire un tracé carré avec des axes égaux dans Matplotlib
- Comment définir des limites pour les axes dans Matplotlib