我有很小的差异,如... 0.000001。我想以对数刻度将它们可视化。我想知道如何在matplotlib中做到这一点。
非常感谢
答案 0 :(得分:17)
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()
答案 1 :(得分:3)
由于所有其他答案仅提及全局pyplot.xscale("log")
方法:您还可以为每个轴设置它,但语法为:
ax.set_yscale("log")
答案 2 :(得分:2)
您可以使用以下代码:
import matplotlib.pyplot
# to set x-axis to logscale
matplotlib.pyplot.xscale('log')
# to set y-axis to logscale
matplotlib.pyplot.yscale('log')
答案 3 :(得分: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吗?如果是这样,可能有助于减去193。