查看原文
其他

实战演练-明星微博热搜次数的数据可视化

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

本文作者:钱梦璇

文字编辑:宁刘莹

技术总编:张   邯


重磅!!!为了大家能够更好地学习Python技术,以及应广大粉丝和往期学员的要求,2019年11月29日-12月1日,武汉字符串数据科技有限公司将在湖北武汉举办《第四期Python编程技术培训》。本次培训采用理论与案例相结合的方式,旨在帮助零基础学员轻松入门Python,由浅入深学习和掌握Python的编程技术,特别是网络数据抓取技术。目前正在火热招生中~

详细培训大纲及报名方式,请点击《2019年Python第四期培训招生》或点击文末阅读原文呦~


在之前的推文中(《Python数据可视化神器:pyecharts(一)》)(《Python数据可视化神器:pyecharts(二)》),我们介绍了pyecharts的基础用法,今天我们以2019上半年明星微博热搜次数的数据为例进行实战演练。


1.生成简单柱状图


首先,我们通过搜索拿到2019年上半年明星热搜次数的数据,这里仅选取8个艺人:

周杰伦65次,易烊千玺50次,朱一龙55次,倪大红49次,张艺兴48次,迪丽热巴45次,吴亦凡42次,杨幂49次。


根据数据的特征,我们先选用柱状图进行展示。

首先,导入柱状图(Bar)模块:

from pyecharts.charts import Bar


第二步,利用add方法添加图表数据和设置各种配置项:

bar=Bar() #创建Bar实例bar.add_xaxis(["周杰伦", "易烊千玺", "朱一龙", "倪大红","张艺兴","迪丽热巴","吴亦凡", "杨幂"]) bar.add_yaxis("热搜次数", [65,50,55,49,48,45,42,49]) 


其中,bar.add_xaxis()中的参数为横坐标上的数据;bar.add_yaxis()中的第一个参数为图例,第二个参数列表为纵坐标上的数据。pyecharts 所有方法均支持链式调用,在此也可写为:

bar = ( Bar() .add_xaxis(["周杰伦", "易烊千玺", "朱一龙", "倪大红","张艺兴","迪丽热巴","吴亦凡", "杨幂"]) #加入横坐标参数 .add_yaxis("热搜次数", [65,50,55,49,48,45,42,49]) #加入纵坐标数据)


第三步,使用默认的配置和模板,直接渲染出柱形图:

bar.render(r'E:\pyecharts学习\FirstBar.html')


render会生成本地 HTML文件,默认会在当前目录生成render.html文件。它也支持 path 参数,如程序所示可以设置文件保存位置,文件需要用浏览器打开。

 

通过以上命令,就可生成一个最基础的关于“2019上半年明星热搜次数”的柱形图,如下图所示:



2.向柱状图中添加信息

 

以上我们只是展示了一个图表最基本的信息,而在实际应用中,我们需要向图表中不断地添加信息来展示出图表中数据的分布、特点以及做此图的目的等等。

 

如果我们想在柱状图中添加标题,需要通过 set_global_options 方法来设置全局配置项。全局配置项包括了初始化配置项、工具箱配置项、标题配置项、图例配置项等,我们可以根据需求通过对这些配置项的设定设计出清晰全面的图表。

 

那么对于标题的设定,需要利用到标题配置项TitleOpts:

from pyecharts import options as opts #导入optionsbar.set_global_opts(title_opts=opts.TitleOpts(title = "2019上半年明星微博热搜次数",subtitle = "柱状图展示"))


其中title表示主标题,subtitle表示副标题。

 

如果我们想在柱状图中展示出最大值、最小值以及平均值时,就需要通过set_series_opts方法来设置系列配置项。系列配置项包括了文字样式配置项、标记点数据项和配置项、标记线数据项和配置项、分割线配置项等。

 

那么想要标记出最大和最小值,需要利用标记点配置项MarkPointOpts:

bar.set_series_opts(markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max',name='最大值'),opts.MarkPointItem(type_='min',name='最小值')]))


我们需要通过标题配置项中展示出最大和最小值,又要通过标记点数据项MarkPointItem方法设定。其中,type_是固定写法,只适用于特殊的标注类型如最大和最小值,如果是一般的坐标轴上的点,则用coord=[‘横坐标’,’’’纵坐标’];name表示了这个标记点的名字。这里需要注意data是一个系列,就算只有一个标记点也必须做list处理。

 

同样的,如果要在柱状图中画出平均值线,利用标记线配置项MarkLineOpts和标记点数据项:

bar.set_series_opts(markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='average',name='平均值')]))


加入以上设置后,我们得到的柱状图如下所示:


当把光标置于65或42这两个标记点处时,同样会出现图中平均值所示的具体信息。

 

3.改变图表结构

 

当一个横坐标值对应两个或多个纵坐标数据时,只需要再添加一次或多次bar.add_yaxis()信息。我们再加入2018下半年这些明星上微博热搜的次数,则改变后的纵坐标的数据如下所示:

bar.add_yaxis("2018下半年", [24,63,81,0,42,28,66,31]) #加入纵坐标参数bar.add_yaxis("2019上半年", [65,50,55,49,48,45,42,49]) 


相对于一般纵向放置的柱状图,小编觉得横向的Bar更直观更好看,那么改变方向只需要向程序中加入:

bar.reversal_axis()


数据的变化导致标题也需要变化,最终的柱状图如下所示:


根据图表,我们可以看出明星上微博热搜的次数与他们参演的电视剧和综艺节目或者参加的活动有很大的关系。例如,倪大红在2019年参演的电视剧《都挺好》爆红之后,由于演技爆表以及角色的设定受到观众一直喜欢,故热搜次数和2018有很大差距。


这些数据和信息通过柱状图都清晰地展示了出来,感兴趣的朋友们可以自己动手试一试~



对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐

stata绘制热力图详解

《少年的你》影评
集合常用方法小结
实战演练-爬取深交所年报
      重建“通天塔” —— Unicode编码与解码
输出分组描述性统计表的利器——report
字典常用操作小结
XPath Helper助XPath爬虫一臂之力
查找变量?用“codebook”!
distinct命令用法一览
Stata数据分析技术应用培训
玩转Python之“手把手”教你爬数据(一)
玩转Python之“手把手”教你爬数据(二)
labelsof和labelbook介绍
Statalist上的“火云邪神”
爬虫实战程序的函数封装
Zipfile(二)
利用collapse命令转化原始数据

关于我们

微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

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

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

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