字典转直方图

2 投票
1 回答
2617 浏览
提问于 2025-04-18 06:37

我有一个字典,叫做

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

这样做会得到:

在这里输入图片描述

撰写回答