查看原文
其他

什么是全局配置项?|从零开始的Pyecharts(二)

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

本文作者:任哲,中南财经政法大学经济学院

本文编辑:赵一帆

技术总编:王子一

Stata&Python云端课程来啦!

为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&Python特惠课程双双上线腾讯课堂~原价2400元的Python编程培训课程,现在仅需100元,详情请查看推文《Python云端课程福利大放送!0基础也能学~》。关于Stata,爬虫俱乐部推出了系列课程,内容包括字符串函数、正则表达式、爬虫专题和文本分析,可以随心搭配,价格美丽,物超所值,更多信息可查看Stata系列推文《与春天有个约会,爬虫俱乐部重磅推出正则表达式网络课程!》《与春天有个约会,爬虫俱乐部重磅推出基本字符串函数网络课程》等。变的是价格,不变的是课程质量和答疑服务。对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦。

在之前的推文《帮你拿下数据可视化|从零开始的Pyecharts》之中,已经给大家讲了如何简单的绘制一种图表。但这样粗糙的图表一定不是你想要的,今天就开始为大家介绍Pyecharts中丰富图表内容的配置项options。配置项的功能非常强大,甚至可以说在Pyecharts 中,一切皆 options。但伴随功能强大的是知识点的琐碎,琐碎就容易导致我们在使用时经常处于一种需要什么搜什么的状态,在这种状态下大家看似在百度的帮助下完成了任务,但是却无法真正掌握它们,等下次再需要到时,就又两眼一抹黑了。所以在接下来的文章里,我会尝试帮助大家理解什么是配置项,该如何学习它。Pyecharts 的官方配置文档中把配置项中将其分为了全局配置项和系列配置项两大类,因为内容太多,所以今天的文章只涉及全局配置项。


01
什么是全局配置项?
什么是全局配置项?官方文档里并没有给出具体的概念解释,而是给了一张图:

可以看出全局配置项里包括标题配置项、图例配置项和视觉映射配置项等组件。可以简单地理解为全局配置项里这些具体的组件是作用在全局的,也即作用在整个图形中的。在官方文件中一共介绍了22个组件,他们大多都有异曲同工之处,本文就不一一赘述,所以本文以最常用的组件TitleOpts:标题配置项为例,展示如何学习设置全局配置项。


02
添加全局配置项

在进行标题配置项的讲解之前,先说明一下如何添加全局配置,其可通过 set_global_opts 方法设置。以柱状图为例,首先从pyecharts里调用配置项options,然后在添加了x轴和y轴的信息后添加全局配置项即可。代码如下

from pyecharts import options as optsfrom pyecharts.charts import Barfrom pyecharts.faker import Faker
#链式调用c = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) .set_global_opts( title_opts=opts.TitleOpts(title=""), legend_opts=opts.LegendOpts(is_show=True), ) #添加全局配置项,)c.render_notebook()
#单独调用bar = Bar()bar.add_xaxis(Faker.choose())bar.add_yaxis("商家A", Faker.values())bar.set_global_opts(title_opts=opts.TitleOpts(title=""),legend_opts=opts.LegendOpts(is_show=True)) #添加全局配置项bar.render_notebook() #在jupyter notebook里显示图表

两种调用方法如上,可以看到我们只需要 set_global_opts方法里填入需要的组件,不同组件之间用逗号隔开,并修改其中的参数就行了。其中,如果想要在jupyter notebook里显示图表只需要将render()修改为render_notebook()即可。


03
以TitleOpts:标题配置项为例

想要了解标题配置项中都有什么参数,我们就要观察一下相关的代码,幸运的是pyecharts的官方文档是公布了代码的,如下所示:

class TitleOpts( # 主标题文本,支持使用 \n 换行。 title: Optional[str] = None, # 主标题跳转 URL 链接 title_link: Optional[str] = None, # 主标题跳转链接方式 # 默认值是: blank # 可选参数: 'self', 'blank' # 'self' 当前窗口打开; 'blank' 新窗口打开 title_target: Optional[str] = None, # 副标题文本,支持使用 \n 换行。 subtitle: Optional[str] = None, # 副标题跳转 URL 链接 subtitle_link: Optional[str] = None, # 副标题跳转链接方式 # 默认值是: blank # 可选参数: 'self', 'blank' # 'self' 当前窗口打开; 'blank' 新窗口打开 subtitle_target: Optional[str] = None, # title 组件离容器左侧的距离。 # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比, # 也可以是 'left', 'center', 'right'。 # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。 pos_left: Optional[str] = None, # title 组件离容器右侧的距离。 # right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。 pos_right: Optional[str] = None, # title 组件离容器上侧的距离。 # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比, # 也可以是 'top', 'middle', 'bottom'。 # 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。 pos_top: Optional[str] = None, # title 组件离容器下侧的距离。 # bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。 pos_bottom: Optional[str] = None, # 标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距。 # // 设置内边距为 5 # padding: 5 # // 设置上下的内边距为 5,左右的内边距为 10 # padding: [5, 10] # // 分别设置四个方向的内边距 # padding: [ # 5, // 上 # 10, // 右 # 5, // 下 # 10, // 左 # ] padding: Union[Sequence, Numeric] = 5, # 主副标题之间的间距。 item_gap: Numeric = 10, # 主标题字体样式配置项,参考 `series_options.TextStyleOpts` title_textstyle_opts: Union[TextStyleOpts, dict, None] = None, # 副标题字体样式配置项,参考 `series_options.TextStyleOpts` subtitle_textstyle_opts: Union[TextStyleOpts, dict, None] = None,)

看到这里,你可能一头雾水,没关系接下来就告诉你怎么看这个代码:首先我们看第一个#后的内容:

# 主标题文本,支持使用 \n 换行。 title: Optional[str] = None

在代码中,冒号之前指的是该参数的名称,这里是title;冒号之后我们看到Optional[str] = None可以理解为该参数是字符型,默认为空(None),如果是 Numeric = 10那就是数值型参数,默认为10了。那么该参数可以写成title="标题"#之后的文本中有进一步的注释,即主标题文本,支持使用 \n 换行。在使用时我们可以根据注释来填写我们的参数,接着我们再看一个更复杂的参数pos_top

# title 组件离容器上侧的距离。# top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,# 也可以是 'top', 'middle', 'bottom'。# 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。pos_top: Optional[str] = None
像这种参数,就告诉了你参数虽然是字符型,但是并不能随便填写。根据注释提示,你在这将参数设置为“20”、“20%”甚至是“top”,但是你不能设为“高”、“远”或者“任意字符qaq”等字符。
还有一种情况,就是参数不一定只有一个值,比如参数padding
# 标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距。# // 设置内边距为 5# padding: 5# // 设置上下的内边距为 5,左右的内边距为 10# padding: [5, 10]# // 分别设置四个方向的内边距# padding: [# 5, // 上# 10, // 右# 5, // 下# 10, // 左# ]padding: Union[Sequence, Numeric] = 5
padding指的是标题内边距,根据注释padding的值可以是5、也可以为[5,10]、也可以是[5,10,5,10]。当然还有一些参数的值甚至可以是字典,这里就不多说了,大家在实战中注意即可。关于其他组件的代码,大家可以在官方文档里寻找,相应网址是“https://pyecharts.org/#/zh-cn/global_options”。具体看下图:

接下来,用一个简单的实例来结束这篇推文:
c = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) .set_global_opts( title_opts=opts.TitleOpts(title="这是一个用于展示的\n柱状图", subtitle = "这里是副标题", pos_right = "10%", padding= [10,10,10,10], item_gap = 20), ) )c.render_notebook()

好了以上就是推文的全部内容了。全局配置项设置中包含众多组件,大家可以根据以上方法进行学习。最后说一下常用的组件有:InitOpts:初始化配置项, TitleOpts:标题配置项LegendOpts:图例配置项ToolboxOpts:工具箱配置项VisualMapOpts:视觉映射配置项TooltipOpts:提示框配置项DataZoomOpts:区域缩放配置项

最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。


关注我们,订阅更多最新消息

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





往期推文推荐       帮你拿下数据可视化|从零开始的Pyecharts 

        Stata助力疫情打卡管理——是谁没有接龙呢?

        这十年,《金融研究》的编委和读者偏爱哪些研究话题和文章?

       【案例展示】Python与数据库交互

学好这一手,英语词典常在手 

玩转Stata中的数学函数

用spmap看中国空气质量

戳穿围城面具:安利&劝退一个专业

走进图文并茂的攻略世界 

玩转word文档“大变身”——wordconvert

数据读入|一文读懂用Stata读入不同类型的数据

简述递归

OpenCV库——轻松更换证件照背景色

800万年薪!还有谁?!

千古伤心词人,词伤几何?

去哪儿网攻略爬取——跟我一起去大理吧

"有你才有团"——Stata爬取王者荣耀英雄海报

爬虫实战|嚣张的徽州宴老板娘错在哪?

如何获取衡量股民情绪的指标?|东方财富股吧标题爬虫

利用Python构建马科维茨有效边界

rangestat,让统计量灵活滚动起来!

听说这样做立项成功率更高哦

如何处理缺失值?这一篇搞定!

善用dataex命令,高效沟通你我他

用Markdown制作简历,强力助力你的求职季

大数据下的大学分数线排行榜,快来围观!

《觉醒年代》—带你回到百年前

用Stata画的三维图很奇怪怎么办?

如何随机生成满足特定数据特征的新变量?

爬取无法翻页网页——自然科学基金项目及可视化

爬取京东评论数据进行情感分类

Stata与音乐之间的酷炫连接

关于我们 


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



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

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里

作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众
中提出,只需支付少量赏金,我们会在后期的推文里给予解答。




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

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