我正在尝试使用对数x轴绘制直方图。我目前使用的代码如下
plt.hist(data, bins=10**(np.linspace(0, 1, 2, 3), normed=1)
plt.xscale('log')
但是,x轴实际上没有正确绘制!它只是从1到100.理想情况下我想要1,10,100和1000的刻度线。任何想法?
答案 0 :(得分:10)
以下作品。
import matplotlib.pyplot as plt
import numpy as np
data = [1.2, 14, 150 ]
bins = 10**(np.arange(0,4))
print "bins: ", bins
plt.xscale('log')
plt.hist(data,bins=bins)
plt.show()
在您的代码中,probelm是bins
数组。它只有两个值[1, 10]
,而如果您想要1,10,100,and 1000
的标记,则需要将这些数字设为bins
。