pyecharts箱线图_pyecharts极简入门教程

导读

数据可视化是整个数据分析流程中的关键环节,甚至有着一图定成败的关键性地位。前期,陆续推出了matplotlib和seaborn详细入门教程,对于常规的数据探索和基本图表制作是足够的,但二者的一个共同短板是图表不可交互,缺少那种活灵灵的样子!当Python遇到百度echarts,pyecharts便应用而生,最重要的是支持交互、且可移植到PPT报告中,这效果简直是再理想不过的。

5bb742fb0f9079650267490914e0ddf9.png

pyecharts4步输出图表

pyecharts可视化图表制作相比matplotlib和seaborn而言,其实是更为简单的,因为它几乎所有图表都遵循了"同一套路",没有过多复杂参数、无需细节技巧牵绊。但同时,它又有二者所不具备的一些优点:
  • 简洁的API设计,支持链式调用

  • 多种主题可选,丰富的参数设置

  • 可交互的可视化效果,且可移植到PPT中

  • 提供了常用图表类型接口,包括matplotlib和seaborn不支持的一些图表:例如词云、可视化地图等

基于以上这些原因,pyecharts是个人在可视化输出过程中应用仅次于matplotlib和seaborn的第三大可视化库。当然,各可视化库都有其各自擅长场景,本无优劣高下之分。本文旨在介绍pyecharts图表制作中最基础的套路,掌握这些基本操作、再辅以官网详尽教程,基本上常规图表都是可以的!

个人认为学习pyecharts无需熟记各类参数,而仅需掌握通用原理和流程即可,具体操作可待实际应用时查阅相应源码和官网教程。所以本文给出的是一份极简教程,而不会逐一介绍面面俱到。
1. 设置通用项

与seaborn类似,pyecharts也提供了多个通用设置项,包括图表主题、生成文件类型等,一般保持默认即可得到较为不错的图表,但希望尝试新的风格时则可调用主题接口。主题设置作为具体图表的一个初始化参数进行设置,例如:

from pyecharts.charts import Barfrom pyecharts import options as optsfrom pyecharts.globals import ThemeTyp#主题选择作为图表初始化参数进行设置
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))

另一个通用项设置中较为实用的是notebook选项,这在使用jupyter notebook或者jupyter lab中是必不可少的一项,默认为jupyter notebook方式。在jupyter lab中加入以下两行通用设置后,即可调用render_notebook()在cell中查看图表结果:

from pyecharts.globals import CurrentConfig, NotebookType  
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
2. 选择图表

pyecharts提供了几乎常用的所有图表类型,除了柱状图、折线图、饼图、散点图这4大通用可视化图表外,还包括词云、地图、箱线图、K线图等专用图表,另外,pyecharts也提供了常用图表的3D形式,对于多类型图表组合则提供了Page、Grid、Tab和Timeline4种形式,可将其看做是单图表的容器,例如Timeline的一个简单案例:原来用pyecharts画个时间线图这么简单。

在确定图表类型(图表实例化)后则是添加数据。pyecharts在迭代1.0版本后,一个最大的特色就是支持链式调用,所以添加数据也是极其方便的。

这里有必要解释下何为链式调用。可能很多pyecharts初学者在查阅官方文档时会看到如下写法(这里选用官网上直方图的一个demo):

 1from pyecharts import options as opts
2from pyecharts.charts import Bar
3from pyecharts.faker import Faker
4
5c = (
6    Bar()
7    .add_xaxis(Faker.choose())
8    .add_yaxis("商家A", Faker.values())
9    .add_yaxis("商家B", Faker.values())
10    .set_global_opts(
11        title_opts=opts.TitleOpts(title="Bar-Brush示例", subtitle="我是副标题"),
12        brush_opts=opts.BrushOpts(),
13    )
14    .render("bar_with_brush.html")
15)

这个链式调用将图表的实例化、添加数据、设置参数、输出结果放在了一句代码执行,对新人更为不友好的是将这些代码放在了一组圆括号之中,搞得云里雾里(至少在我初学时是这样的),实际上理解这段代码需要掌握两个知识点:

  • Python中可将单个表达式或单个语句放在一组圆括号内实现跨行书写,例如下面例子中,写法1合法,而写法2报错,区别仅在于有无圆括号
f44b0a35a5de4b2be2c573919a69dc75.png
  • pyecharts将图表类的每个方法都返回了self本身,这样每个方法的返回值都是该图表实例,进而实现链式调用

7d6e4cff6021626e737270ca648b1eba.png

实际上,这种链式调用在机器学习库中是非常常见的一种设计,学过sklearn的读者应该都了解一行代码实现*.fit().score()的优雅写法。

理解了链式调用背后的原理,则很容易弄懂上面的代码:实际上其等价于如下形式:

 1from pyecharts import options as opts
2from pyecharts.charts import Bar
3from pyecharts.faker import Faker
4
5c = Bar() # 1.实例化
6c.add_xaxis(Faker.choose()) # 2.添加x轴标签
7c.add_yaxis("商家A", Faker.values()) # 3.添加y轴数据A
8c.add_yaxis("商家B", Faker.values()) # 4.添加y轴数据B
9c.set_global_opts(
10        title_opts=opts.TitleOpts(title="Bar-Brush示例", subtitle="我是副标题"),
11        brush_opts=opts.BrushOpts(),
12    ) # 5.添加通用设置项
13c.render("bar_with_brush.html") # 6.输出html图表结果

6句代码调用了6个接口,分别完成:

  • 实例化一个直方图对象

  • 添加x轴数据

  • 添加y轴数据A

  • 添加y轴数据B

  • 设置通用参数,包括标题、区域圈选等

  • 输出html图表文件

掌握了这一基本套路,基本上就理解了pyecharts输出可视化图表的通用方法。

3. 设置图表参数

pyecharts提供了3类图表参数设置类型,分别是图表设置项、通用设置项、系列设置项,其中:

  • 图表设置项是具体到某个特定图表对象的设置参数,各图表可选设置参数不同

  • 通用设置项最为常用,例如图表初始化设置就属于通用设置中的一项,另外包括标题、坐标轴、可视化缩放条等都属于通用设置项

  • 系列设置项则可以用于设置图表的某些具体参数,例如label可设置数据标签是否显示以及位置等

对应相应设置项,pyecharts分别提供了设置接口:

set_global_opts()
set_series_opts()
4. 输出结果

最后,pyecharts提供了将可视化图表输出的方式,实际较为常用的有两种:

  • render()输出到网页中

  • render_notebook()在jupyter中即时显示,具体区分notebook和jupyter lab两种,可在全局参数中设置

此外,pyecharts还提供了其他多种图表输出形式,例如make_snapshot()可直接输出为png图片。但如此一来则失去交互能力。 pyecharts作为百度出echarts可视化库与Python的结合体,其在制作可交互图表方面具有很好的效果,且更重要的是相较于其他可视化库学起来更易上手。如果说有什么明显缺点的话,那么可能是其支持数据类型较为传统:即仅支持Python基础的数据结构,对数据科学库的数据类型(如ndarray和dataframe)则不适用,这是由其定位所决定的。 9146363957eff90be4f99a8436cbe26b.png

相关阅读:

  • 临行在即,分享一个自己写的sklearn源码库

  • python数据科学系列:seaborn入门详细教程

  • python数据科学系列:pandas入门详细教程

  • python数据科学系列:matplotlib入门详细教程

  • python数据科学系列:numpy入门详细教程

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
以下是使用 Pyecharts 绘制箱线图的示例代码: ```python from pyecharts import options as opts from pyecharts.charts import Boxplot # 构造数据 data = [ [850, 740, 900, 1070, 930, 850, 950, 980, 980, 880], [960, 940, 960, 940, 880, 800, 850, 880, 900], [880, 880, 880, 860, 720, 720, 620, 860], [890, 810, 810, 820, 800, 770, 760, 740, 750], [890, 840, 780, 810, 760, 810, 790, 810, 820, 850], ] # 创建 Boxplot 对象 boxplot = ( Boxplot() .add_xaxis(["A", "B", "C", "D", "E"]) .add_yaxis("", box_data=data) .set_global_opts( title_opts=opts.TitleOpts(title="箱线图示例"), xaxis_opts=opts.AxisOpts(type_="category"), yaxis_opts=opts.AxisOpts(type_="value") ) ) # 渲染图表 boxplot.render("boxplot.html") ``` 解释一下代码: 1. `data` 是一个包含多个列表的列表,每个内部列表都是箱线图中一个箱子的数据。 2. 创建 `Boxplot` 对象。 3. 使用 `add_xaxis` 方法添加 x 轴数据。 4. 使用 `add_yaxis` 方法添加 y 轴数据,第一个参数为空字符串表示不需要图例。 5. 使用 `set_global_opts` 方法设置全局选项,包括标题、x 轴和 y 轴的选项。 6. 使用 `render` 方法将图表渲染为 HTML 文件。 如果需要在 Jupyter Notebook 中显示图表,可以使用 `render_notebook` 方法代替 `render` 方法,代码如下: ```python from pyecharts.render import make_snapshot from snapshot_selenium import snapshot as driver make_snapshot(driver, boxplot.render(), "boxplot.png") ``` 这将把图表渲染为 PNG 图片,并将其显示在 Jupyter Notebook 中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值