字典转直方图
我有一个字典,叫做
Samples = {5.207403005022627: 0.69973543384229719, 6.8970222167794759: 0.080782939731898179, 7.8338517407140973: 0.10308033284258854, 8.5301143255505334: 0.018640838362318335, 10.418899728838058: 0.14427355015329846, 5.3983946820220501: 0.51319796560976771}
在这个字典里,keys
(键)代表的是x轴上的点,而values
(值)则表示这些点对应的y值,也就是y=f(x)
。
我想知道怎么用这些数据创建一个直方图,bin sizes=1
,范围在0-10
之间。
1 个回答
2
你可以把keys
当作直方图的箱子位置,把values
当作这些箱子的权重,方法如下:
import numpy as np
import matplotlib.pyplot as plt
d = {5.207403005022627: 0.69973543384229719, 6.8970222167794759: 0.080782939731898179, 7.8338517407140973: 0.10308033284258854, 8.5301143255505334: 0.018640838362318335, 10.418899728838058: 0.14427355015329846, 5.3983946820220501: 0.51319796560976771}
a = np.array(d.items())
a = a[np.argsort(a[:,0])]
x, weights = a.T
plt.figure(figsize=(5,4))
plt.hist(x, weights=weights)
plt.show()
这样做会得到: