当前位置:首页 > 技术文章 > 正文内容

【干货】数据可视化很难?一文弄懂PyEcharts可视化技术

zonemu3个月前 (07-21)技术文章28

俗话说的好“文不如表,表不如图”,的信息传达效率很高,是数据汇报、数据展示的重要手段。好的数据展示不仅需要有图,还要选合适的图、选合适的工具画图(例如能交互的图就比静态图更吸引人)。

图形的选择可以参考CDA数据分析师认证一级教材中关于图表与分析场景的对应关系来选择合适的图

本文主要给大家分享一款绘图工具,可以绘制能交互的图形,这个工具就是PyEcharts

PyEcharts为啥画的一手好图

PyEcharts为啥画的一手好图?因为他有个“好爸爸”-Echarts。Echarts是百度开源的,目前托管在Apache软件基金会。它底层由JavaScripts实现,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器。ECharts 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。

Echarts虽有千般好,but JavaScripts这个前端语言对于大部分数据分析师而言是一个屏障,所以有几位大佬开发出PyEcharts,这其实是通过Python语言对Echarts做了封装,会Python的数据分析师便能快速上手使用Echarts了。

快速上手PyEcharts

PyEcharts版本迭代比较快,差异较大的是0.5.x 与新的 1.x 、2.x版本之间差异较大。并且官方也不再持续对0.5.x系列更新迭代了,所以本文采用的是1.x、2.x的写法演示如何应用PyEcharts进行绘图。

从简单的柱形图开始

导入要绘制的图形对象的构造函数,常见的图表几乎都在charts里面了。

from pyecharts.charts import Bar # 这里导入的是柱形图Bar,还可以是Line折线图、Pie饼图等

使用构造函数初始化图形对象

bar = Bar()

接下来添加x轴的数据

bar.add_xaxis(["2021","2022","2023","2024","2025"])

添加y轴数据,第一个参数是系列名称(例如一张图可以绘制多组柱状图,一个系列就是一个组)

bar.add_yaxis("A组销售额",y_axis=[1000,3000,2500,4000,3900])
bar.add_yaxis("B组销售额",y_axis=[2000,3500,3500,3000,3500])

最后通过render或者render_notebook函数将图形绘制出来。

bar.render_notebook() # 适合在jupyter notebook环境下直接在cell下面显示。


如果使用的是render可以将图形渲染到html(网页文件)中去,可以传入指定的文件名。

bar.render("历年销售数据.html")

上面的代码生成了历史销售数据.html这个网页文件了。

双击打开就可以在浏览器看到图形了。

锦上添花

简单的绘图上面的操作就够了,如果想让图形更炫酷,则需要更多的代码雕琢。如何在PyEcharts里面实现其他额外的功能呢,通过配置项即可。PyEcharts里有一句话叫“一切皆配置”,就是任何需求都由配置来实现。

所有的配置类型都在options模块下,约定俗成的导入方式如下:

import pyecharts.options as opts 

接下来初始化柱状图对象时为其做初始化配置(init_opts),在初始化配置中设置一套PyEcharts自带的主题。

from pyecharts.globals import ThemeType
bar2 = Bar(init_opts=opts.InitOpts(theme=ThemeType.SHINE))

后续代码一样,添加数据,渲染致jupyter notebook。

bar2.add_xaxis(["2021","2022","2023","2024","2025"])
bar2.add_yaxis("A组销售额",y_axis=[1000,3000,2500,4000,3900])
bar2.add_yaxis("B组销售额",y_axis=[2000,3500,3500,3000,3500])
bar2.render_notebook()


看起来与之前的图还是有很大区别的,例如配色。PyEcharts还有很多主题可以有不同的视觉效果。

bar3 = Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))

以上就是PyEcharts的基本用法,如果你学会了绘制常见的一些图形完全没有问题。更多的细节用法可以关注PyEcharts官方文档或者我们的系列文章。

CDA数据分析力测评专业可靠,如果想了解自己的数据分析能力,扫码开测,做到心理有数。

相关文章

vue 3 学习笔记 (八)——provide 和 inject 用法及原理

在父子组件传递数据时,通常使用的是 props 和 emit,父传子时,使用的是 props,如果是父组件传孙组件时,就需要先传给子组件,子组件再传给孙组件,如果多个子组件或多个孙组件使用时,就需要传...

Gitlab 的使用和代码审查流程介绍

1、先简洁介绍下项目常用的信息-面板统计页面2、用户信息面板3、服务器信息4、项目信息5、重点介绍代码提交审核机制和授权合并机制开发人员推送代码的时候不能直接推送到master,否则就会报错。此时开发...

K8s 的 Namespace 到底解决了什么问题?

在 Kubernetes 的世界里,资源调度、服务编排以及自动化运维构成了它强大的基础架构能力。但随着集群规模的扩大和团队协作复杂度的提升,仅靠原始的资源管理手段已经难以支撑多租户或大型项目的管理需求...

我常在使用的几个 VIM 插件(我常在使用的几个 vim 插件)

今天给你分享几个我觉得还不错的 VIM 插件,也许能给你带来一点「惊喜感」。vim主题插件 你完全可以让你的编辑器按照你喜欢的样子呈现,在 vimcolors 这个网站中,汇集了很多的主题,你可以进去...

「云原生」Containerd ctr,crictl 和 nerdctl 命令介绍与实战操作

一、概述作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使用,只是大部分时候我们因熟悉Docker,在部署集群时采用了默认的dockers...

Web前端全套教程+视频包含JavaScript、Vue等

写在前面:web前端从入门到精通经典教程,老师精心讲,想从事编程或者数据分析行业的小伙伴点进来,只需你评论并关注私信留言“前端”。便可免费获取。WEB前端简介:WEB前端工程师,也叫Web前端开发工程...