使用 tkinter 显示直方图中的出现次数

Displaying the occurrences in a Histogram with tkinter

亲爱的 Whosebug 社区。我最近一直在研究 tkinter 和简单的 python 库。首先,随机获取 1000 个字母,找到它们的出现后,使用 tkinter 在直方图中显示答案。我已经通过了前两步,并达到了 tkinter 直方图。

这是我目前所做的:

import string
import random
from collections import Counter


a = []
for i in range(1001):
    lower_upper_alphabet = string.ascii_lowercase
    random_letter = random.choice(lower_upper_alphabet)
    a.append(random_letter)

print(Counter(a))

我只需要显示结果,在字典里,比如这张图:

#第一步:- 您可以将字典转换为 Dataframe,您可以参考文档 (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.from_dict.html)

#第二步:- 将数据框绘制为直方图

#第三步:- 在 tkinter 中嵌入 matplotlib 图 canvas(假设你知道如何根据上面显示的输出来做到这一点)

bar Matplotlib 的方法是为此设计的:

import matplotlib.pyplot as plt
cnt = Counter(a)
plt.bar(cnt.keys(), cnt.values(), align='center', alpha=0.5)
plt.xlabel('Letters')
plt.ylabel('Amounts')
plt.show()

如您所见,plt.bar 的输入是 x 轴的字母和 y 轴的数量。

输出:

注:

您可以在 plt.show() 之前使用 plt.savefig('letters.png') 命令来保存您的图像。