等级直方图

时间:2019-05-23 04:08:55

标签: python matplotlib histogram

我需要在Python中制作具有等级分布的直方图。我使用matplotlib。

db_instances_map:
    !Database DB_01:
        host: db01.example.com
        port: 1521
        user: foo
        pass: bar

可以使用直方图,但是我不喜欢python用于在x轴上显示等级的分组。我想知道是否有一种方法(一些历史参数或另一个绘图库),在其中我可以为每个单独的成绩设置条形?

谢谢。

2 个答案:

答案 0 :(得分:0)

这可能有点麻烦,但是一旦有了正确的论点,您就可以自定义几乎所有内容。主要问题似乎是正确设置bins并使用rwidth设置基本宽度。

也许这更接近您的期望:

import matplotlib.pyplot as plt

plt.title('Histogram Grades')
data = [1, 3, 10, 8, 9, 5, 3, 7, 7, 3, 1, 3, 10, 8, 9, 5, 3, 7, 7, 3, 2]
plt.hist(data, rwidth=.8, bins=np.arange(min(data), max(data)+2) - 0.5)

plt.xticks(np.arange(min(data), max(data)+1, 1.0))
plt.ylabel('Count')
plt.show()

enter image description here

答案 1 :(得分:0)

由于您需要频率的条形图,因此我个人建议使用Counter模块来计数频率。它返回一个字典,其键是等级,值是其相应的频率。     导入matplotlib.pyplot作为plt     从馆藏进口柜台

data = [1, 3, 10, 8, 9, 5, 3, 7, 7, 3, 1, 3, 10, 8, 9, 5, 3, 7, 7, 3]
freqs = Counter(data)
# Counter({1: 2, 3: 6, 10: 2, 8: 2, 9: 2, 5: 2, 7: 4})

plt.bar(freqs.keys(), freqs.values())
plt.ylabel('Count')
plt.title('Histogram Grades')
plt.show()

enter image description here