diff --git a/painter.py b/painter.py new file mode 100644 index 0000000..4aa59bc --- /dev/null +++ b/painter.py @@ -0,0 +1,45 @@ +import sys +import pandas as pd +import matplotlib.pyplot as plt +from config import FILE_NAME, PAINT_RANK_SIZE + +def load_data(): + try: + dataframe = pd.read_csv(FILE_NAME, names=["country", "person", "death"], encoding="utf-8") + except BaseException: + print("错误编码格式") + sys.exit(1) + + #删除第一行,得到前PAINT_RANK_SIZE名的国家 + return dataframe.drop(0).head(PAINT_RANK_SIZE) + +def paint_bar(): + dataframe = load_data() + + # 设置中文显示 + plt.rcParams['font.sans-serif'] = ['SimHei'] + plt.rcParams['figure.figsize'] = (PAINT_RANK_SIZE * 0.8, 5) # 设置figure_size尺寸 + + # x轴坐标 + x = dataframe["country"].values + # y轴坐标 + y = dataframe["death"].values + # 绘制柱状图 + plt.bar(x, y) + # 设置x轴名称 + plt.xlabel("国家",fontsize=14) + # 设置y轴名称 + plt.ylabel("死亡人数",fontsize=14) + plt.savefig('image_bar.jpg', dpi=800) + plt.show() + +def paint_pie(): + dataframe = load_data() + + labels = dataframe["country"].values + counts = dataframe["death"].values + dist = [x / 5e6 for x in counts]#分离距离与counts相关 + + plt.pie(counts, dist, labels, autopct='%.1f%%') + plt.savefig('image_pie.jpg', dpi=800) + plt.show() \ No newline at end of file