注:如需所用表格数据,可在本人主页资源栏内直接下载
制作饼状图
统计电脑屏幕尺寸占比
新建方法
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()
成品图
成品如下图所示