matplotlib - 直方图的对数 x Axis

标签 matplotlib plot histogram axis

我试图用对数 x Axis 绘制直方图。我目前使用的代码如下

plt.hist(data, bins=10**(np.linspace(0, 1, 2, 3), normed=1) 
plt.xscale('log')

但是,x Axis 实际上并未正确绘制!它只是从 1 到 100。理想情况下,我希望有 1、10、100 和 1000 的刻度线。有什么想法吗?

最佳答案

以下作品。

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()

在您的代码中,problem 是 bins大批。它只有两个值,[1, 10] , 而如果你想在 1,10,100,and 1000 打勾您需要将这些号码提供为 bins .

关于matplotlib - 直方图的对数 x Axis ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41000668/

相关文章:

python - 让文本显示在子图图像前面

python - 使用 {tuple :float} format 来自 dict 的 x 和 y 标签在 python matplotlib 中创建热图

python - 如何在 PyQt5 应用程序中更改 Matplotlib NavigationToolbar 的默认文件名?

python - 像 plt.matshow 但有三角形的东西

matlab - 为什么像 'rectangle' 和 'line' 这样的绘图命令会忽略 'hold off' ?

swing - 在java中绘制缓冲图像的直方图

python - Pandas 直方图 : plot histogram for each column as subplot of a big figure

wolfram-mathematica - 在mathematica中绘制多规则函数

r - 如何在 R 中绘制对数刻度密度曲线直到极值?

python - 从 pandas 数据框中保存的分组数据有效地创建大量直方图