2012-04-02 14 views

Odpowiedz

15

http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.axis

Wystarczy dodać argument słowa kluczowego log=True

Lub, w przykładzie:

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() 

enter image description here

1

Można użyć tego kawałka kod:

import matplotlib.pyplot 
# to set x-axis to logscale 
matplotlib.pyplot.xscale('log') 
# to set y-axis to logscale 
matplotlib.pyplot.yscale('log') 
2

Zamiast plot, można użyć 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() 

Ale nie jestem do końca pewien, co masz nadzieję zyskać stosując skalę dziennika. Kiedy mówisz "mała różnica", masz na myśli, że wartości mogą wynosić 193.000001 i 193.000002? Jeśli tak, to może pomóc, aby odjąć od 193.

3

Ponieważ wszystkie inne odpowiedzi wspomnieć tylko globalną pyplot.xscale("log") podejście: Można również ustawić go na oś, ale składnia jest:

ax.set_yscale("log") 
Powiązane problemy