Comment mettre l'axe des ordonnées en échelle logarithmique avec Matplotlib ?

Published: 17 juin 2014

DMCA.com Protection Status

Pour transformer un axe en échelle logarithmique sous Matplotlib, il existe les méthodes xscale et yscale dans la classe pyplot. Dans cet exemple l'axe des ordonnées est en échelle logarithmique grâce à la commande plt.yscale('log'):

Table des matières

Exemple 1

Prenons par exemple la fonction exponentielle:

import matplotlib.pyplot as plt
import numpy as np

x_min = 0
x_max = 10.0

x = np.arange(x_min, x_max, .01)
y = np.exp(x)

plt.plot(x,y)

plt.xlim(x_min,x_max)
plt.ylim(np.exp(x_min),np.exp(x_max))

plt.grid(True,which="both", linestyle='--')

plt.title('How to add a grid on a figure in matplotlib ?', fontsize=8)

plt.savefig("matplotlib_grid_03.png", bbox_inches='tight')
plt.close()

Comment ajouter une grille sur une figure avec Matplotlib ?
Comment ajouter une grille sur une figure avec Matplotlib ?

Pour avoir, par exemple l'axe des ordonnées en échelle logarithmique on peut utiliser plt.yscale('log'):

import matplotlib.pyplot as plt
import numpy as np

x_min = 0
x_max = 10.0

x = np.arange(x_min, x_max, .01)
y = np.exp(x)

plt.plot(x,y)

plt.xlim(x_min,x_max)
plt.ylim(np.exp(x_min),np.exp(x_max))

plt.yscale('log')

plt.grid(True,which="both", linestyle='--')

plt.title('How to add a grid on a figure in matplotlib ?', fontsize=8)

plt.savefig("matplotlib_grid_04.png", bbox_inches='tight')

Comment ajouter une grille sur une figure avec Matplotlib ?
Comment ajouter une grille sur une figure avec Matplotlib ?

Exemple 2

Autre exemple avec une fonction de phase crée par un code de mie (output_mie_code.txt)

#!/usr/bin/env python

import numpy as np
import matplotlib.pyplot as plt

c1,c2,c3,c4,c5  = np.loadtxt("output_mie_code.txt", skiprows=2, unpack=True)

fig = plt.figure()
ax = fig.add_subplot(111)

plt.plot(c1,c2,'k--')
plt.yscale('log')

plt.grid(True,which="both")

plt.xlabel(r"Scattering Angle $\Theta$ ($^\circ$)")
plt.ylabel(r"$P_{11}$")

plt.show()

Échelle logarithmique avec Matplotlib
Échelle logarithmique avec Matplotlib

Note: Pour avoir en plus la grille en échelle logarithmique il suffit d'utiliser la commande plt.grid(True,which="both").

Références

Image

of