我做了这个例子来展示我想要做的事情:
data = np.random.normal(loc=1000,scale=20,size=2000)
plt.hist(np.log10(data),log=True)
plt.xlabel('Log(data)')
plt.ylabel('Count')
plt.show()
执行此命令后,我得到一个漂亮的直方图,其中x轴为Log(数据),y轴为Counts(y轴为对数缩放)。出于某种原因,我希望在y尺度上记录(计数),我的意思不是记录的轴,而是记录自己的值。因此,如Log(数据)Vs Log(计数)和轴本身不应该被记录。谢谢您的帮助。
答案 0 :(得分:2)
我不确定你是否可以使用hist()函数本身,但你可以用条形图轻松地重新创建它。
import numpy as np
import matplotlib.pyplot as plt
data = np.random.normal(loc=1000,scale=20,size=2000)
n, bins, patches = plt.hist(np.log10(data),log=True)
# Extract the midpoints and widths of each bin.
bin_starts = bins[0:bins.size-1]
bin_widths = bins[1:bins.size] - bins[0:bins.size-1]
# Clear the histogram plot and replace it with a bar plot.
plt.clf()
plt.bar(bin_starts,np.log10(n),bin_widths)
plt.xlabel('Log(data)')
plt.ylabel('Log(Counts)')
plt.show()