查看原文
其他

Python数据可视化神器:pyecharts (二)

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:周聪聪

本文编辑:杨慧琳

技术总编:张学人

有问题,不要怕!访问 

http://www.wuhanstring.com/uploads/5_aboutus/爬虫俱乐部-用户问题登记表.docx(复制到浏览器中)下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~

爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~

爬虫俱乐部隆重推出数据定制及处理业务,您有任何网页数据获取及处理方面的难题,请发邮件至我们邮箱statatraining@163.com,届时会有俱乐部高级会员为您排忧解难

上一篇推文里,我们介绍了pyecharts的使用流程及简单柱状图的绘制等。在本篇推文中,我们将继续探索这个数据可视化神器,为大家介绍常见的几个图表类型:柱状图/条形图(Bar)、饼图(Pie)、折线图/面积图(Line),并通过参数配置,丰富和变换图标显示样式。

一、柱状图/条形图(Bar)

柱状图/条形图一般用柱子来展现数据,主要用于展现数据变化及对比。下面,我们以武汉市PM2_5日均值数据为例为大家进行介绍。首先,导入模块,创建图表实例,并将数据放入列表中:

from pyecharts import Bar
bar=Bar("柱状图示例","PM2_5日均值")
date=["2月22日","2月23日","2月24日","2月25日","2月26日","2月27日","2月28日"]
data1=[45,54,60,75,119,39,36]

下面,我们通过如下程序,添加柱状图的配置项,进一步了解其含义。

① 柱形图一

bar.add("武汉市",date,data1,mark_point=["average"],mark_line= ["min","max"],is_label_show=True,label_pos='inside')

在这里,设置了四个主要参数,分别是:a.标记点(mark_point),这里表示在图中标记出数据的均值;b.标记线(mark_line),此处设为标出数据的最大值线及最小值线; c.是否显示数据(is_label_show),此处的"True"表示将数值在图中显示出来,一般默认为不显示;d.数据显示位置(label_pos),这里的"inside"表示将数值放在单个柱形里显示,一般默认将数值放在柱形上方显示。其中参数的赋值包括但不限于以上几种,大家可根据需要自行设置。

bar.render(r'C:\pyecharts\chart1.html')

这样,就生成了如下柱形图:

② 柱形图二

bar.add("武汉市",date,data1,xaxis_interval=1,xaxis_rotate=30,yaxis_rotate=30,xaxis_line_width=5)
bar.render(r'C:\pyecharts\chart2.html')

图形如下所示:

可以看到,这张柱形图和上一张图有着明显的区别。在这段程序中,我们设置横坐标标签间隔(xaxis_interval)为1,相应的柱状图中的x轴标签相隔一个显示;设置横纵坐标转动角度(xaxis_rotate\yaxis_rotate)为30;设置x轴宽度(xaxis_line_width)为5。

那直方图怎么绘制呢?很简单,设置柱形的距离(bar_category_gap)为0,直方图就制作出来了。程序及运行结果如下:

bar.add("武汉市",date,data1,bar_category_gap=0)
bar.render(r'C:\pyecharts\chart3.html')

爬虫俱乐部是您身边的科研助手,能够为您在数据处理实证研究中提供帮助。承蒙近四万粉丝的支持与厚爱,我们在腾讯课堂推出了网络视频课程,专注于数据整理、网络爬虫、循环命令编制和结果输出…李老师及团队精彩地讲解,深入浅出,注重案例与实战,让您更加快速高效地掌握Stata技巧及数据处理的精髓,而且可以无限次重复观看,在原有课程基础上已上传了全新的内容!百分百好评,简单易学,一个月让您从入门到精通。绝对物超所值!观看学习网址:

https://ke.qq.com/course/286526?tuin=1b60b462,

敬请关注!

二、折线/面积图(Line)

折线/面积图是用折线将各个数据点连接起来的图表,主要用于展现数据的变化趋势。接下来,我们以武汉市PM2_5日均值与上海市PM2_5日均值数据为例为大家介绍折线和面积图。首先,输入如下程序:

from pyecharts import Line
line=Line("折线/面积图示例","PM2_5日均值")
date=["2月22日","2月23日","2月24日","2月25日","2月26日","2月27日","2月28日"]
data1=[47,121,108,81,40,27,32]
data2=[45,54,60,75,119,39,36]

然后,对“上海市”数据,我们添加参数,标记出均值点,设置标记点形状(mark_point_symbol)为三角形;对“武汉市”数据,我们设置其为平滑曲线显示,标记出最大值及最小值点,并将标记点形状设为菱形,标记点大小为50。详细程序如下:

line.add("上海市",date,data1,mark_point=["average"],mark_point_symbol="triangle")
line.add("武汉市",date,data2,is_smooth=True,mark_point=["max","min"],mark_point_symbol="diamond",mark_point_symbolsize=50)
line.render(r'C:\pyecharts\chart4.html')

这样,折线图就制作成功了:

此外,我们还可以添加参数—填冲面积(is_fill)来绘制面积图,并设置折线的宽度及区域的颜色、透明度等,程序及结果如下:

line.add("上海市",date, data1, is_fill=True,line_opacity=0.2,area_opacity=0.4,symbol=None)
line.add("武汉市",date,data2,is_fill=True,area_color="#000",area_opacity=0.3,is_smooth=True)
line.render(r'C:\pyecharts\chart5.html')

三、饼图(Pie)

饼图主要以百分比形式显示每一类数值相对于总数值的大小,常用于分类数据。我们以服装数据为例绘制饼图。首先,依旧是导入模块等步骤:

from pyecharts import Pie
pie= Pie(“饼状图”,”服装示例”,title_pos=’center’,width=900) #设置主副标题居中显示,饼图宽度为900
attr = [“衬衫”,”羊毛衫”, “雪纺衫”, “裤子”,”高跟鞋”, “袜子”]
v1 = [5, 20, 36, 10, 75, 90]
v2 = [10, 25, 8, 60, 20, 80]

接下来就是饼图绘制的重头戏了:设置饼图的中心(圆心)坐标(center),默认设置成百分比;设置标签显示(is_label_show)图例不显示(is_legend_show)。这样,饼图就绘制出来了:

pie.add("商家A",attr, v1,center=[25,50])
pie.add("商家B",attr, v2,center=[75,50],is_label_show=True,is_legend_show=False)
pie.render(r'C:\pyecharts\chart6.html')

上就是几种常见的图表类型的介绍了。除上述参数外,还有一些参数碍于篇幅限制没有详细列出,如参数"is_convert"可用于交换XY轴;参数"label_color"可改变柱形的颜色;参数"xaxis_label_textcolor"可改变横坐标标签的颜色等。大家在使用过程中可根据需要增减参数。同时,pyecharts还可以绘制雷达图,箱线图,地图,词云图等,功能可谓十分强大。大家也可微信搜索“ECharts图表示例”多多学习下~

注:本文生成的图片已传至"https://stata-club-1257787903.cos.ap-chengdu.myqcloud.com/chart.html",大家可点击查看

对爬虫俱乐部的推文累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫!

往期推文推荐

关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存