Matplotlib 直方图,频率为千

发布于 2024-11-03 21:43:59 字数 415 浏览 1 评论 0原文

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

问题是直方图上的频率轴(y 轴)达到很高的数字,例如 100,000...我真正想要的是让 y 标签为数千,所以而不是,例如:

100000

75000

50000

25000

0

要得到这个:

100

75

50

25

0

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

I have a histogram I'm drawing in matplotlib with some 260,000 values or so.

The problem is that the frequency axis (y axis) on the histogram reaches high numbers such as 100,000... What I'd really like is to have the y labels as thousands, so instead of, for instance:

100000

75000

50000

25000

0

To have this:

100

75

50

25

0

And then I can simply change the y axis to "Frequency (000s)" -- it makes it much easier to read that way. Anyone with any ideas how that can be achieved?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

狼亦尘 2024-11-10 21:44:00

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

产量
输入图片此处描述

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

yields
enter image description here

残疾 2024-11-10 21:44:00

只需在输入之前自行转换这些值即可。在 numpy 中,您可以只使用 array/1000 而不是 array

Just convert the values yourself before they are entered. In numpy, you can do just array/1000 instead of array.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文