宝藏级pyecharts超详细的使用指南(代码片段)

ZSYL ZSYL     2023-02-02     584

关键词:

pyecharts简介

Echarts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts诞生了。Echarts是用JS来写的,而我们使用pyecharts则可以使用Python来调用里面的API

优点:

  1. 简洁的 API 设计,使用如丝滑般流畅,支持链式调用
  2. 囊括了 30+ 种常见图表,应有尽有
  3. 支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab
  4. 可轻松集成至 Flask,Django 等主流 Web 框架
  5. 高度灵活的配置项,可轻松搭配出精美的图表
  6. 详细的文档和示例,帮助开发者更快的上手项目
  7. 多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持

安装:

  1. 在普通的python环境中:pip install pyecharts
  2. anaconda中:
    • 先打开anaconda prompt
    • 输入pip install pyecharts进行安装。

首先打开命令行(win+r),输入:

pip install pyecharts

由于墙的原因,下载时会出现断线和速度过慢的问题导致下载失败,所以建议通过清华镜像来进行下载:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts


出现上方的信息,即代表下载成功,我们可以来进行下一步的实验了!

使用实例

注意:就是python2.x和python3.x的编码问题,在python3.x中你可以把它看做默认是unicode编码,但在python2.x中并不是默认的,原因就在它的bytes对象定义的混乱,而pycharts是使用unicode编码来处理字符串和文件的,所以当你使用的是python2.x时,请务必在上方插入此代码:

from future import unicode_literals

可以忽略因为目前大都是python3

官方文档:

  1. 官方文档(中文):https://pyecharts.org/#/zh-cn/intro
  2. 官方github:https://github.com/pyecharts/pyecharts

pyecharts快速开始

pyecharts中可以绘制的图有很多,这里我们先来总体的了解一下他的使用风格,和调用的方式。有宏观的理解后,再具体学习具体图形的绘制。

Notebook中创建一个条形图:

from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
bar.render_notebook()

链式调用:

有些程序员喜欢链式调用,或者链式调用在某些情况下可以让代码更加简洁。pyecharts中所有的方法都支持链式调用。比如以上条形图的代码可以改成:

from pyecharts.charts import Bar
bar = (
    Bar()
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
)
bar.render_notebook()

配置选项:

pyecharts中包括图的标题,颜色主题等,都是通过选项Options配置的。

比如:

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType

bar = (
    # 使用了InitOpts来初始化图的主题
    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
    .add_yaxis("商家B", [10, 21, 30, 15, 80, 92])
    # 使用TitleOpts来初始化了标题和子标题
    .set_global_opts(title_opts=opts.TitleOpts(title="Pyecharts练习",subtitle="柱状图"))
)
bar.render_notebook()

所有的这些都是有相应的opts来配置。

全局配置项

我们来看下全局配置项有哪些。在学习具体的配置项之前,先来看下pyecharts生成的图由哪几个部分组成。

针对以上每个部分,都有相应的配置项来进行配置。所有的配置类,都是放到pyecharts.options中。

AnimationOpts:画图动画配置项

可以配置画图的动画,比如是否开启动画,动画持续时间,动画缓动效果等。

具体参数参考:https://pyecharts.org/#/zh-cn/global_options?id=animationopts%ef%bc%9aecharts-%e7%94%bb%e5%9b%be%e5%8a%a8%e7%94%bb%e9%85%8d%e7%bd%ae%e9%a1%b9

InitOpts:初始化配置项

可以配置诸如图像宽度,高度,图表主题,背景颜色等。示例代码如下:

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from faker import Faker

c = (
        Bar(
            init_opts=opts.InitOpts(
                width="500px",
                height="400px",
                theme=ThemeType.LIGHT,
                bg_color="skyblue"
            )
        )
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
    )
c.render_notebook()

具体参考:https://pyecharts.org/#/zh-cn/global_options?id=initopts%ef%bc%9a%e5%88%9d%e5%a7%8b%e5%8c%96%e9%85%8d%e7%bd%ae%e9%a1%b9

ToolBoxFeatureOptsToolboxOpts:工具箱配置项

可以配置图片右上角的工具箱。
具体参考:https://pyecharts.org/#/zh-cn/global_options?id=toolboxfeatureopts%ef%bc%9a%e5%b7%a5%e5%85%b7%e7%ae%b1%e5%b7%a5%e5%85%b7%e9%85%8d%e7%bd%ae%e9%a1%b9

TitleOpts:标题配置项

配置图的标题和子标题等信息。示例代码如下:

c = (
        Bar()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(title_opts=opts.TitleOpts(
            title="销售表",
            pos_right="0",
            pos_bottom="2px",
            title_textstyle_opts=opts.TextStyleOpts(**"color":"#333","font_size":12)
        ))
    )
c.render_notebook()

具体参考:https://pyecharts.org/#/zh-cn/global_options?id=titleopts%ef%bc%9a%e6%a0%87%e9%a2%98%e9%85%8d%e7%bd%ae%e9%a1%b9

DataZoomOpts:区域缩放配置项

图的底部的缩放配置项目。比如是否展示缩放,缩放过程中是否需要实时更新图等。

具体参考:https://pyecharts.org/#/zh-cn/global_options?id=datazoomopts%ef%bc%9a%e5%8c%ba%e5%9f%9f%e7%bc%a9%e6%94%be%e9%85%8d%e7%bd%ae%e9%a1%b9

LegendOpts:图例配置项

配置图例。示例代码如下:

c = (
        Bar()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
            legend_opts=opts.LegendOpts(selected_mode="mutiple",orient="vertical",pos_right="30px")
        )
    )
c.render_notebook()

更多请参考:https://pyecharts.org/#/zh-cn/global_options?id=legendopts%ef%bc%9a%e5%9b%be%e4%be%8b%e9%85%8d%e7%bd%ae%e9%a1%b9

VisualMapOpts:视觉映射配置项

示例代码如下:

c = (
    Scatter()
    .add_xaxis(Faker.choose())
    .add_yaxis("商品",[(x,y) for x,y in zip(Faker.values(),Faker.values())])
    .set_global_opts(
        visualmap_opts = opts.VisualMapOpts(type_="size",range_text=['大','小'])
    )
)
c.render_notebook()

更多请参考:https://pyecharts.org/#/zh-cn/global_options?id=visualmapopts%ef%bc%9a%e8%a7%86%e8%a7%89%e6%98%a0%e5%b0%84%e9%85%8d%e7%bd%ae%e9%a1%b9

TooltipOpts:提示框配置项

提示框的配置项。示例代码如下:

c = (
    Scatter()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A",Faker.values())
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Scatter-多维度数据"),
        tooltip_opts=opts.TooltipOpts(
            formatter=JsCode(
                "function (params) return params.value"
            )
        )
    )
)
c.render_notebook()

更多请参考:https://pyecharts.org/#/zh-cn/global_options?id=tooltipopts%ef%bc%9a%e6%8f%90%e7%a4%ba%e6%a1%86%e9%85%8d%e7%bd%ae%e9%a1%b9

AxisLineOpts/AxisTickOpts/AxisPointerOpts/AxisOpts: 坐标轴轴线/刻度/指示器/坐标轴配置项。示例代码如下:

c = (
        Bar()
        .add_xaxis(
            [
                "名字很长的X轴标签1",
                "名字很长的X轴标签2",
                "名字很长的X轴标签3",
                "名字很长的X轴标签4",
                "名字很长的X轴标签5",
                "名字很长的X轴标签6",
            ]
        )
        .add_yaxis("商家A", [10, 20, 30, 40, 50, 40])
        .add_yaxis("商家B", [20, 10, 40, 30, 40, 50])
        .set_global_opts(
            xaxis_opts=opts.AxisOpts(
                name="商家名称",
                axislabel_opts=opts.LabelOpts(rotate=-15),
                axisline_opts = opts.AxisLineOpts(symbol="arrow",linestyle_opts=opts.LineStyleOpts(width=2)),
                axistick_opts = opts.AxisTickOpts(is_inside=True,length=20),
                axispointer_opts = opts.AxisPointerOpts(is_show=True,type_="line")
            )
        )
    )
c.render_notebook()

更多请参考:https://pyecharts.org/#/zh-cn/global_options?id=axislineopts-%e5%9d%90%e6%a0%87%e8%bd%b4%e8%bd%b4%e7%ba%bf%e9%85%8d%e7%bd%ae%e9%a1%b9

SingleAxisOpts:单轴配置项

更多请参考:https://pyecharts.org/#/zh-cn/global_options?id=singleaxisopts%ef%bc%9a%e5%8d%95%e8%bd%b4%e9%85%8d%e7%bd%ae%e9%a1%b9

条形图

横向条形图

横向条形图只要调用reversal_axis()即可。

c = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values())
    .add_yaxis("商家B", Faker.values())
    .reversal_axis()
    .set_series_opts(label_opts=opts.LabelOpts(position="right"))
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-翻转 XY 轴"))
)

效果图如下:

堆叠条形图:

堆叠条形图只要在添加y轴的函数add_yaxis上添加stack参数即可。示例代码如下:

c = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values(), stack="stack1")
    .add_yaxis("商家B", Faker.values(), stack="stack1")
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-堆叠数据(全部)"))
)

效果图如下:

设置条形图的间距:

条形图得间距设置有两种。第一种是设置category_gap参数,这个参数是x轴每个分类的间距,第二个是gap,这个是统一分类下多根柱子间的间距。示例代码如下:

c = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values(), category_gap="80%")
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-单系列柱间距离"))
)

c = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values(), gap="0%")
    .add_yaxis("商家B", Faker.values(), gap="0%")
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Bar-不同系列柱间距离"),
    )
)

带有网格的条形图:

网格图,是在x轴和y轴上,都绘制横线,形成的网格。可以在opts.AxisOpts中通过设置splitline_opts实现。

c = (
        Bar()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Scatter-显示分割线"),
            xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
            yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
        )
    )
c.render_notebook()

柱状图-Bar

//导入柱状图-Bar
from pyecharts import Bar
//设置行名
columns = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
//设置数据
data1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
data2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
//设置柱状图的主标题与副标题
bar = Bar("柱状图", "一年的降水量与蒸发量")
//添加柱状图的数据及配置项
bar.add("降水量", columns, data1, mark_line=["average"], mark_point=["max", "min"])
bar.add("蒸发量", columns, data2, mark_line=["average"], mark_point=["max", "min"])
//生成本地文件(默认为.html文件)
bar.render()


简单的几行代码就可以将数据进行非常好看的可视化,而且还是动态的,在这里还是要安利一下jupyterpyecharts在v0.1.9.2版本开始,在jupyter上直接调用实例(例如上方直接调用bar)就可以将图表直接表示出来,非常方便。

饼图

//导入饼图Pie
from pyecharts import Pie
//设置主标题与副标题,标题设置居中,设置宽度为900
pie = Pie("饼状图", "一年的降水量与蒸发量",title_pos='center',width=900)
//加入数据,设置坐标位置为【2550】,上方的colums选项取消显示
pie.add("降水量", columns, data1 ,center=[25,50],is_legend_show=False)
//加入数据,设置坐标位置为【7550】,上方的colums选项取消显示,显示label标签
pie.add("蒸发量", columns, data2 ,center=[75,50],is_legend_show=False,is_label_show=True)
//保存图表
pie.render()

箱线图

箱线图使用pyecharts.charts.Boxplot来实现。

基本使用:

v1 = [
    [850, 740, 900, 1070, 930, 850, 950, 980, 980, 880]
    + [1000, 980, 930, 650, 760, 810, 1000, 1000, 960, 960],
    [960, 940, 960, 940, 880, 800, 850, 880, 900]
    + [840, 830, 790, 810, 880, 880, 830, 800, 790, 760, 800],
]
v2 = [
    [890, 810, 810, 820, 800, 770, 760, 740, 750, 760]
    + [910, 920, 890, 860, 880, 720, 840, 850, 850, 780],
    [890, 840, 780, 810, 760, 810, 790, 810, 820, 850宝藏级全网最全的pandas详细教程(2万字总结)(代码片段)

【回炉重造】Python之Pandas详细教程前言为什么要学习Pandas?什么是Pandas?1.Pandas的索引操作1.Series和DataFrame中的索引都是Index对象2.索引对象不可变,保证了数据的安全3.常见的Index种类3.1Series索引1.index指定行索引名2.行索引3.切片... 查看详情

宝藏级全网最全的matplotlib详细教程-数据分析必备手册(4.5万字总结)(代码片段)

【宝藏级】全网最全的Matplotlib详细教程(4.5万字总结)1.数据分析中常用图折线图:柱状图:直方图:散点图:饼状图:箱线图:更多参考:2.Matplotlib库安装:基本使用:设置图的信息&#... 查看详情

宝藏级全网最全的matplotlib详细教程-数据分析必备手册(4.5万字总结)(代码片段)

【宝藏级】全网最全的Matplotlib详细教程(4.5万字总结)1.数据分析中常用图折线图:柱状图:直方图:散点图:饼状图:箱线图:更多参考:2.Matplotlib库安装:基本使用:设置图的信息&#... 查看详情

宝藏级全网最全的seaborn详细教程-数据分析必备手册(2万字总结)(代码片段)

数据分析必备手册-Seaborn详细教程seaborn库安装:官方文档:关系绘图relplot1.基本使用:2.添加hue参数:3.添加col和row参数:4.指定具体的列:5.绘制折线图:分类绘图1.分类散点图:1.1.stripplot:1.2.... 查看详情

python可视化神器——pyecharts的超详细使用指南!

 源|机器之心 文| wengJJpyecharts是一款将python与echarts结合的强大的数据可视化工具,本文将为你阐述pyecharts的使用细则前言我们都知道python上的一款可视化工具matplotlib,而前些阵子做一个Spark项目的时候用到了百度开源的一个... 查看详情

保姆级教程css知识点梳理大全,超详细!!!(代码片段)

保姆级教程CSS知识点梳理大全,超详细!!!✴️大家好,我是王同学,好久不见,趁着假期王同学把CSS知识点梳理了一遍✴️如果对你有帮助就给我点个赞吧,这样我们就互不相欠了✴️星光不负赶路... 查看详情

保姆级教程css知识点梳理大全,超详细!!!(代码片段)

保姆级教程CSS知识点梳理大全,超详细!!!✴️大家好,我是王同学,好久不见,趁着假期王同学把CSS知识点梳理了一遍✴️如果对你有帮助就给我点个赞吧,这样我们就互不相欠了✴️星光不负赶路... 查看详情

python可视化神器:pyecharts,轻松绘制30+种超实用精美图表!(代码片段)

...高,matplotlib已无法满足了。今天我将和大家详细讲解Pyecharts模块,说到 查看详情

新版burpsuite全模块详细使用篇<宝藏文>--小黑渗透工程栈(工具篇2)(代码片段)

本篇文章关于BurpSuite的模块的详细说明,以及使用说明,但实际上的功能不仅仅局限于此,需要各位在实际使用过程中详细发掘,总共十三个模块,建议先从Proxy开始然后一个一个模块地玩。【此篇为burpsuite8.2... 查看详情

hadoop3.1.3分布式集群搭建,超详细,保姆级教程(代码片段)

Hadoop3.1.3分布式集群搭建,超详细,保姆级教程1.环境准备2jdk1.8安装2.1卸载虚拟机自带的JDK2.2安装JDK1.83.在hadoop102安装Hadoop集群3.1集群安装准备3.2安装hadoop3.3hadoop运行模式3.4完全分布式运行模式(开发重点)3.4.1编... 查看详情

vscode安装配置使用教程(最新版超详细保姆级含插件)一文就够了(代码片段)

前言VisualStudioCode是一个轻量级功能强大的源代码编辑器,支持语法高亮、代码自动补全(又称IntelliSense)、代码重构、查看定义功能,并且内置了命令行工具和Git版本控制系统。适用于Windows、macOS和Linux。它内置... 查看详情

python机器学习---pyecharts制作可视化大屏(代码片段)

文章目录Pyecharts可视化Map世界地图柱状图、饼图Pyecharts组合图表ECharts是由百度开源的基于JS的商业级数据图表库,有很多现成的图表类型和实例,而Pyecharts则是为了方便我们使用Python实现ECharts的绘图。使用Pyecharts制作可... 查看详情

一个宝藏级微服务开源项目,压箱底的了(代码片段)

...服务学习项目。这次我拿出了压箱底的收藏了,一个宝藏级微服务开源项目,炸裂!前言zheng项目不仅仅是一个开发架构,而是努力打造一套从前端模板-基础框架-分布式架构-开源项目-持续集成-自动化部署-系统... 查看详情

python安装与环境配置,超详细保姆级教程,学不会退出it圈(代码片段)

▌▌安装Python来到Python官网:https://www.python.org/Downloads>Windows:选择想要的版本后点击进去:下载后点击安装:在本地电脑输入命令提示符:win+R▌▌环境变量配置若执行命令提示符,输入Python后,... 查看详情

python安装与环境配置,2022最新,超详细保姆级教程,python入门必备(代码片段)

▌▌安装Python来到Python官网:https://www.python.org/Downloads>Windows:选择想要的版本后点击进去:下载后点击安装:在本地电脑输入命令提示符:win+R▌▌环境变量配置若执行命令提示符,输入Python后,... 查看详情

python安装与环境配置,2022最新,超详细保姆级教程,python入门必备(代码片段)

▌▌安装Python来到Python官网:https://www.python.org/Downloads>Windows:选择想要的版本后点击进去:下载后点击安装:在本地电脑输入命令提示符:win+R▌▌环境变量配置若执行命令提示符,输入Python后,... 查看详情

java项目学生信息管理系统超详细超完整保姆级讲解(主页面+添加学生信息+删除学生信息+...(代码片段)

...装的可以看看我的这篇博客2021MySql8.0.26安装教程(最详细的傻瓜教程) ),以及使用Java中的JDBC将数据库链接起来。2.数据库的建立由于在项目中没有创建学生数据库的功能,所以学生数据库必须要先建立好&#... 查看详情

rabbitmq!女朋友看了都会的超详细保姆级附源码笔记!看完还不会请砍我!(代码片段)

1.MQ1.1MQ的相关概念什么是MQMQ(messagequeue),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一... 查看详情