Comment tracer des axes logarithmiques dans Matplotlib

  1. Fonctions set_xscale() ou set_yscale()
  2. Fonctions semilogx() ou semilogy()
  3. Fonction loglog()

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:

tracer des axes logarithmiques dans Matplotlib en utilisant la fonction scalex()

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:

tracer des axes logarithmiques dans Matplotlib en utilisant la fonction yscale()

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:

tracé avec échelle logarithmique sur les deux axes à l'aide des fonctions xscale et yscale

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:

tracer des axes logarithmiques dans Matplotlib en utilisant la fonction semilogx()

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:

tracé avec échelle logarithmique sur les deux axes à l'aide de la fonction semilogx et semilogy

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:

tracé avec échelle logarithmique sur les deux axes à l'aide de la fonction loglog

Article connexe - Matplotlib Axes

  • Comment faire pivoter le texte des étiquettes à cocher sur l'axe X dans Matplotlib
  • Comment ajouter une étiquette sur l'axe des y à l'axe des y secondaire dans Matplotlib