Ho vales con una differenza molto piccola come ... 0,000001. Voglio visualizzarli su scala logaritmica. Mi chiedo come farlo in matplotlib.come visualizzare i valori su scala logaritmica su matplotalib?
Grazie mille
Ho vales con una differenza molto piccola come ... 0,000001. Voglio visualizzarli su scala logaritmica. Mi chiedo come farlo in matplotlib.come visualizzare i valori su scala logaritmica su matplotalib?
Grazie mille
http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.axis
semplicemente aggiungere la parola chiave argomento log=True
Oppure, in un esempio:
from matplotlib import pyplot
import math
pyplot.plot([x for x in range(100)],[math.exp(y) for y in range(100)])
pyplot.xlabel('arbitrary')
pyplot.ylabel('arbitrary')
pyplot.title('arbitrary')
#pyplot.xscale('log')
pyplot.yscale('log')
pyplot.show()
È possibile utilizzare questo pezzo di codice:
import matplotlib.pyplot
# to set x-axis to logscale
matplotlib.pyplot.xscale('log')
# to set y-axis to logscale
matplotlib.pyplot.yscale('log')
Invece di plot
, è possibile utilizzare semilogy
:
import numpy as npy
import matplotlib.pyplot as plt
x=npy.array([i/100. for i in range(100)])
y=npy.exp(20*x)
plt.semilogy(x, y)
plt.show()
Ma io non sono del tutto sicuro che cosa sperate di ottenere da utilizzando una scala logaritmica. Quando dici "piccola differenza", intendi che i valori potrebbero essere qualcosa come 193.000001 e 193.000002? Se è così, potrebbe essere utile per sottrarre fuori 193.
Poiché tutte le altre risposte menzionano solo l'approccio globale pyplot.xscale("log")
: È anche possibile impostarlo per asse, ma poi la sintassi è:
ax.set_yscale("log")
Eventuali duplicati di [ Traccia gli assi logaritmici con matplotlib in python] (http://stackoverflow.com/questions/773814/plot-logarithmic-axes-with-matplotlib-in-python) – bluenote10