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
etbasey
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: