在matplotlib中使用对数标度

时间:2016-01-29 07:46:21

标签: python-2.7 matplotlib

我有下面的图,其中X范围非常宽,并且图形的形状接近1 MeV到0.1 MeV被抑制。

我想要一个图,其中X刻度在10,1,0.1 MeV之间具有相等的分离(或相等的网格)。 enter image description here

2 个答案:

答案 0 :(得分:2)

您可以使用matplotlib的{​​{3}}函数代替plot来使x轴成为对数。

这是一个简短的例子:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0.01,14,0.01)
y = np.log(100*x)

fig,(ax1,ax2) = plt.subplots(2)

ax1.plot(x,y)
ax1.set_xlim(x[-1],x[0])
ax1.set_title('plot')

ax2.semilogx(x,y)
ax2.set_xlim(x[-1],x[0])
ax2.set_title('semilogx')

plt.show()

semilogx

答案 1 :(得分:1)

也考虑一下     ax.set_xscale("log") http://matplotlib.org/examples/pylab_examples/aspect_loglog.html