使用 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')
命令来保存您的图像。
亲爱的 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')
命令来保存您的图像。