制作饼状图
统计电脑屏幕尺寸占比
新建方法
def pie_chart():
读取表格
with open(r'笔记本信息.csv', encoding='gb18030'): df = pd.read_csv("笔记本信息.csv", encoding='gb18030') lis = df['屏幕尺寸(单位:英寸)'].value_counts() size_list = lis.keys().tolist() nums_list = lis.values.tolist()
数量小于100的尺寸都记为其他
other = 0 while len(size_list) > 4: if nums_list[4] < 100: other = other + nums_list[4] del nums_list[4] del size_list[4] size_list.append("其他") nums_list.append(other) # print(size_list) # print(nums_list)
以下为一个错误方法
# 将数据存入字典,便于操作 # sizes_nums = {} # for i in range(0, 26): # sizes_nums[size_list1[i]] = nums_list1[i] # print(sizes_nums) # # 数量小于50的尺寸都记为其他 # other = 0 # for size_num in sizes_nums: # if sizes_nums[size_num] < 50: # other = other + sizes_nums[size_num] # del sizes_nums[size_num] × # sizes_nums["其他"] = other # print(sizes_nums) # 迭代中不能改变字典的大小,以上方法作废
作图
plt.figure(figsize=(18, 12), dpi=300) plt.style.use('ggplot') labels = size_list X = nums_list explode = (0.01, 0.01, 0.01, 0.01, 0.01) plt.pie(X, explode=explode, # 数据 labels=labels, # 数据对应的标签 autopct='%1.2f%%', # 百分数保留两位小数点 textprops={'size': 30, 'weight': 'bold'}, # 设置字体大小并加粗 shadow=None, # 无阴影设置 startangle=-50) # 旋转角度 plt.title("笔记本屏幕尺寸分布饼状图(单位:英寸)", fontdict={'fontsize': 40, 'weight': 'bold'}) plt.savefig("笔记本屏幕尺寸分布饼状图.png", dpi=300) plt.show()
成品图
成品如下图所示