Je veux tracer un graphique avec un axe logarithmique en utilisant matplotlib.
J'ai lu les documents, mais je n'arrive pas à comprendre la syntaxe. Je sais que c'est probablement quelque chose de simple comme 'scale=linear'
dans les arguments de l'intrigue, mais je n'arrive pas à comprendre
Exemple de programme:
import pylab
import matplotlib.pyplot as plt
a = [pow(10, i) for i in range(10)]
fig = plt.figure()
ax = fig.add_subplot(2, 1, 1)
line, = ax.plot(a, color='blue', lw=2)
pylab.show()
python
matplotlib
scale
logarithm
Max Ghenis
la source
la source
semilogy()
. De plus, il est plus facile à utiliser directementpyplot.yscale()
qu'à utiliserax.set_yscale('log')
, car il n'est pas nécessaire d'obtenir l'ax
objet (qui n'est pas toujours immédiatement disponible).loglog()
ou uniquement sur l'axe des xsemilogx()
ax
objet explicite à utiliserpyplot
qui ne pourrait s'appliquer qu'aux axes que vous souhaitez.Tout d'abord, ce n'est pas très bien rangé pour mixer
pylab
etpyplot
coder. De plus, le style pyplot est préféré à l'utilisation de pylab .Voici un code légèrement nettoyé, utilisant uniquement des
pyplot
fonctions:La fonction pertinente est
pyplot.yscale()
. Si vous utilisez la version orientée objet, remplacez-la par la méthodeAxes.set_yscale()
. N'oubliez pas que vous pouvez également modifier l'échelle de l'axe X en utilisantpyplot.xscale()
(ouAxes.set_xscale()
).Vérifiez ma question Quelle est la différence entre «log» et «symlog»? pour voir quelques exemples des échelles de graphique proposées par matplotlib.
la source
pyplot.semilogy()
est plus direct.Vous devez simplement utiliser la sémilogie au lieu de l'intrigue:
la source
si vous voulez changer la base du logarithme, ajoutez simplement:
la source
Je sais que cela est légèrement hors sujet, car certains commentaires mentionnaient que la
ax.set_yscale('log')
solution était "la plus agréable", je pensais qu'une réfutation pourrait être due. Je ne recommanderais pas d'utiliserax.set_yscale('log')
pour les histogrammes et les graphiques à barres. Dans ma version (0.99.1.1), je rencontre des problèmes de rendu - je ne sais pas à quel point ce problème est général. Cependant, bar et hist ont des arguments facultatifs pour définir l'échelle y sur log, ce qui fonctionne bien.références: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.bar
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.hist
la source
Donc, si vous utilisez simplement l'API peu sophistiquée, comme je le suis souvent (je l'utilise beaucoup en ipython), alors c'est simplement
J'espère que cela aidera quelqu'un à la recherche d'une réponse simple! :).
la source
Vous pouvez utiliser le code ci-dessous:
la source