【头歌-Python】Python第九章作业(初级)第5关

第5关:绘制程序设计语言饼图

任务描述

列表labels和sizes中的数据分别是目前主流程序设计语言及其热度数据(百分比),请根据这些数据绘制饼图,并将Python程序设计语言所在区域突出0.1显示。

labels = ['C语言',  'Python', 'Java', 'C++语言', 'C#', 'VB.net', 'Javascript', 'PHP', 'Other']
sizes = [16.2, 12.1, 11.7, 7.6, 4.7, 4.0, 2.0, 1.8, 39.9]

输入格式

输出格式

要求:

  • 设置饼图为圆形:
    plt.axes(aspect=1)
  • 设置中文字体和负号显示问题如下:
    plt.rcParams[‘font.sans-serif’] = [‘SimSun’]
  • 解决保存图像是负号’-'显示为方块的问题
    plt.rcParams[‘axes.unicode_minus’] = False
  • 设置各扇形标签(图例)与圆心的距离(labeldistance)为1.1
  • 自动添加百分比显示(autopct),格式化为保留小数点后1位小数
  • 添加饼图的阴影效果
  • 设置饼图的初始摆放角度为90
  • 设置百分比标签与圆心的距离0.7
  • 图例左上角,指定图例在轴的位置为 (-0.3, 1.1)
  • 要求本地调试、运行、绘制图形后,写入文件’program.png’中。
    【头歌-Python】Python第九章作业(初级)第5关_第1张图片

解题思路

本题的要求并不复杂,只要搞懂plt.pie()函数的参数,对照题目的要求一一设置即可,其中突出部分题目只要求了Python突出0.1,所以将其设置为0.1,其它设置为0即可。

参考代码

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimSun']
plt.rcParams['axes.unicode_minus'] = False

# 标签
labels = ['C语言',  'Python', 'Java', 'C++语言', 'C#', 'VB.net', 'Javascript', 'PHP', 'Other']
# 占比
weight = [16.2, 12.1, 11.7, 7.6, 4.7, 4.0, 2.0, 1.8, 39.9]
# 突出程度
out = [0,0.1,0,0,0,0,0,0,0]
# 圆形
plt.axes(aspect=1)   
plt.pie(x=weight, explode=out, labels=labels, labeldistance=1.1, autopct='%2.1f%%', shadow=True, startangle=90, pctdistance=0.7)
plt.legend(loc='upper left', bbox_to_anchor=(-0.3, 1.1))

plt.savefig("output/program.png")
plt.show()

你可能感兴趣的:(头歌-Educoder,Python,python,开发语言,头歌)