NO.65
2020.04.10
工欲善其事,必先利其器
//
- 前言 -
今天,小咖带大家使用Python制作三大产业对GDP贡献的饼状图。最终将得到以下效果:
数据来源:wind,西瓜财经资讯
数据来源:wind,西瓜财经资讯
- Python生成饼状图 -
◆ ◆ ◆ ◆
为了得到以上图形需要进行以下完整步骤:
第一步:导入各种“包”(有些不一定用到)。
数据来源:西瓜财经资讯
第二步:从wind提取累计同比贡献率数据
(1)首次使用Python的wind接口时,需要进行如下操作:wind客户端——量化——修复插件——修复Python接口。
(2)在导入“包”时已经导入了Windpy,并设置为w,之后的语句直接使用w即可。
(3)语句需要以w.start() 开始,否则所有与wind相关的程序都无法运行,但只要运行一次后不用重复运行。
(4)通过edb函数,从经济数据库中得到三大产业对GDP累计同比贡献率的dateframe。
(5)对dateframe进行列标题设置的操作。
第三步:生成饼状图
(1)本部分主要使用plt.pie,主要要素如下:
plt.pie(x,explode=None,labels=None,colors=None,autopct=None...)
——x:(每一块)的比例,如果sum(x)>1会使用sum(x)归一化;——labels:(每一块)饼图外侧显示的说明文字;——explode:(每一块)离开中心距离;——startangle:起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起;——shadow:在饼图下面画一个阴影。默认值:False,即不画阴影;——labeldistance:label标记的绘制位置,相对于半径的比例,默认值为1.1,如<1则绘制在饼图内侧;——autopct:控制饼图内百分比设置,可以使用format字符串或者formatfunction;——pctdistance:类似于labeldistance,指定autopct的位置刻度,默认值为0.6;——radius:控制饼图半径,默认值为1; ——counterclock:指定指针方向;布尔值,可选参数,默认为:True,即逆时针。将值改为False即可改为顺时针;
——wedgeprops:字典类型,可选参数,默认值:None;
——textprops:设置标签(labels)和比例文字的格式;字典类型,可选参数,默认值为:None。传递给text对象的字典参数;
——center:浮点类型的列表,可选参数,默认值:(0,0)。图标中心位置;
——frame:布尔类型,可选参数,默认值:False。如果是true,绘制带有表的轴框架;
——rotatelabels:布尔类型,可选参数,默认为:False。如果为True,旋转每个label到指定的角度。
注意:以下语句的意思是让图形显示中文——
mpl.rcParams['font.sans-serif'] = ['SimHei']
(2)为柱状图添加其他其他图表要素,如标题。
第四步:从wind提取增长贡献率数据
(1)通过edb函数,从经济数据库中得到三大产业及其细分对GDP增长贡献率的dateframe。
第五步:制作环形饼图
(1)wedges1, texts1, autotexts1 =plt.pie()返回三个对象:wedge、text、autotext。wedge是指每一个扇形,texts是分类标签的文本列表,autotexts是百分比部分的文本列表。
(2)第一个plt.pie用来制作外环。
(3)第二个plt.pie用来制作内环。
(5)用plt.legend来设置图例属性。
(6)用plt.setp来设置饼图中标签和百分比的格式。
- 后言 -
Python作图时可以设置图形的颜色,为了便于大家应用,小咖为大家准备了如下十六进制字符的颜色代码。