freq = {1: 1000, 2: 980, 4: 560, ... 40: 3, 41: 1, 43: 1}
(在 1 到 43 之间,并非所有数字都是键)
我想制作一个直方图并绘制它,这样我就可以看到 X 轴上的每个键,以及使用 matplotlib 的 Y 轴上的值。我该怎么做呢?我不希望创建垃圾箱(需要单独涵盖所有值)并且没有教程对我理解这些术语有帮助。我的时间也很短,所以无法了解所有术语。做这个的最好方式是什么?
freq = {1: 1000, 2: 980, 4: 560, ... 40: 3, 41: 1, 43: 1}
(在 1 到 43 之间,并非所有数字都是键)
我想制作一个直方图并绘制它,这样我就可以看到 X 轴上的每个键,以及使用 matplotlib 的 Y 轴上的值。我该怎么做呢?我不希望创建垃圾箱(需要单独涵盖所有值)并且没有教程对我理解这些术语有帮助。我的时间也很短,所以无法了解所有术语。做这个的最好方式是什么?
To extend @Tzach's comment, here's a minimal example to create a bar chart from your data:
import matplotlib.pyplot as plt
freq = {1: 1000, 2: 980, 4: 560, 40: 3, 41: 1, 43: 1}
fig, ax = plt.subplots()
ax.bar(freq.keys(), freq.values())
fig.savefig("bar.png")
如果您使用 matplotlib,您可以创建2D 直方图
>>> import matplotlib.pyplot as plt
>>> freq = {1: 1000, 2: 980, 4: 560,40: 3, 41: 1, 43: 1}
>>> x = list(freq.keys())
>>> y = list(freq.values())
>>> plt.hist2d(x,y)
(array([[ 0., 0., 0., 0., 0., 1., 0., 0., 0., 2.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 3., 0., 0., 0., 0., 0., 0., 0., 0., 0.]]), array([ 1. , 5.2, 9.4, 13.6, 17.8, 22. , 26.2, 30.4, 34.6,
38.8, 43. ]), array([ 1. , 100.9, 200.8, 300.7, 400.6, 500.5, 600.4,
700.3, 800.2, 900.1, 1000. ]), <matplotlib.image.AxesImage object at 0xb475012c>)
>>> plt.show()