Matplotlib直方图,频率为数千

Jon*_*lis 2 python graph matplotlib histogram

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

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

100000

75000

50000

25000

0

要有这个:

100

75

50

25

0

然后我可以简单地将y轴更改为"频率(000s)" - 这样可以更容易地进行读取.任何想法如何实现的人?

unu*_*tbu 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()
Run Code Online (Sandbox Code Playgroud)

产量 在此输入图像描述