2012-04-02 11 views
5

私は非常に小さな違いのような値を持っています... 0.000001。私はそれらを対数スケールで視覚化したい。私はmatplotlibでそれを行う方法が不思議です。matplotalibの対数スケールで値を視覚化する方法は?

どうもありがとう

+0

可能性のある重複しました[ Pythonでmatplotlibで対数軸をプロットする](http://stackoverflow.com/questions/773814/plot-logarithmic-axes-with-matplotlib-in-python) – bluenote10

答えて

15

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

は単に例では、キーワード引数log=True

を追加または:

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

あなたはこの作品を使用することができますコード:

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

代わりのplot、あなたは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() 

しかし、私はあなたが対数スケールを使用することから得るために望んで全くわかりません。あなたが「小さな違い」と言うとき、値が193.000001と193.000002のようなものかもしれないということを意味しますか?その場合は、それは他のすべての答えが唯一のグローバルpyplot.xscale("log")アプローチに言及しているので193

3

をオフに引くのに役立つかもしれません:あなたはまた、軸ごとに設定することができますが、その後の構文は次のとおりです。の

ax.set_yscale("log") 
関連する問題