Matplotlib直方图,频率为数千

时间:2011-04-28 16:27:17

标签: python graph matplotlib histogram

我有一个直方图,我在matplotlib中绘制了大约260,000个左右的值。

问题是直方图上的频率轴(y轴)达到了高数,例如100,000 ......我真正喜欢的是将y标签设置为数千,所以代替,例如:

  

100000

     

75000

     

50000

     

25000

     

0

要有这个:

  

100

     

75

     

50

     

25

     

0

然后我可以简单地将y轴更改为“频率(000s)” - 这样可以更容易地阅读。有任何想法的人如何实现?

2 个答案:

答案 0 :(得分:13)

使用matplotlib.ticker.FuncFormatter

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np

mu, sigma = 100, 15
x = mu + sigma * np.random.randn(1000000)

fig, ax = plt.subplots()
n, bins, patches = ax.hist(x, 50, facecolor='green', alpha=0.75)

ax.yaxis.set_major_formatter(ticker.FuncFormatter(
    lambda y, pos: '%.0f' % (y * 1e-3)))
ax.set_ylabel('Frequency (000s)')

plt.show()

的产率 enter image description here

答案 1 :(得分:0)

只需在输入值之前自行转换值。在numpy中,您只需array/1000而不是array