Python 绘制精美可视化数据分析图表 (二)-pyecharts

简介: 画图表就是为了把复杂的事情表达清楚,画图表还可以弥补单用文字表达的缺欠,对有些事物解说更直接、更具体。就像我们平时会议所用的 PPT,能够更直观呈现讲述者所想表达的意思,且通俗易懂。总的来说,使用图表可以化复杂为简洁,化抽象为具体,使读者或听众更容易理解。图表能跟直观表达和揭示数据的规律,人对图像更加敏感,对图文并茂的事物更容易接受,阅读更加简单高效,而且图表更显专业性,更具有说服力,更有利于沟通。在上一篇文章《Python 绘制精美可视化数据分析图表 (一)-Matplotlib》中我们已经讲述过数据分析和绘制数据分析图表的好处,这里就不再赘述。直奔主题:pyecharts 是什么?

前言


画图表就是为了把复杂的事情表达清楚,画图表还可以弥补单用文字表达的缺欠,对有些事物解说更直接、更具体。就像我们平时会议所用的 PPT,能够更直观呈现讲述者所想表达的意思,且通俗易懂。总的来说,使用图表可以化复杂为简洁,化抽象为具体,使读者或听众更容易理解。

图表能跟直观表达和揭示数据的规律,人对图像更加敏感,对图文并茂的事物更容易接受,阅读更加简单高效,而且图表更显专业性,更具有说服力,更有利于沟通。

在上一篇文章《Python 绘制精美可视化数据分析图表 (一)-Matplotlib》中我们已经讲述过数据分析和绘制数据分析图表的好处,这里就不再赘述。直奔主题:pyecharts 是什么?有什么用?如何使用?接下来我们一起探讨交流。

首先我们来说说


pyecharts 是什么?有什么用?


pyecharts 是一个用于生成 Echarts 图表的类库,众所周知,Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,可视化的类型丰富,不但提供了很多图表的实现方式,还提供了自定义的能力,可扩展出不同的图表,支持用户交互,且支持多种数据格式,大量数据也能流畅展现,支持动态数据的动画展示,同时还支持三维可视化,最重要的是能够跨平台,不管是 PC 还是各种移动端,多端完美适应,更适合我们日常的开发需求。而 pyecharts 就是 Echarts 的 Python 实现,同样拥有和 Echarts 一样强大的绘图能力。使 Python 和 Echarts 能更好对接,也是一把数据分析的利器。


pyechart 的特性:

  • 基础的 API 设计使用如丝般流畅,支持链式调用
  • 囊括了 30+种常见的图形,有应尽有
  • 支持笔记 JupyterLab 环境,pyter Notebook
  • 可轻松集成至 Django 等 WebFlask 框架
  • 高度灵活的配置,可搭配出高性能的图形项
  • 详细的文档和示例,帮助开发者上手项目
  • 多达 400+个文件以及澳大利亚的地图,为地理数据可视化提供地图的支持

了解了 pyecharts 的来源和作用,最重要当然是学会使用它。如何使用?让我们继续往下看。


准备


安装


pyecharts 官网:https://pyecharts.org

pyecharts 分为两个大间版本 v0.5.X 和 v1 v0.5.X 和 v1 大间版本,v1 是一个全新的版本。0.5.x 版本将不再进行维护,0.5.x 版本代码位于 05x 分支,支持 Python2.7,3.4+。而 v1 仅支持 Python3.6+。

安装跟其他 Python 库安装一样简单,命令如下:(推荐)

pip install pyechartspip3 install pyecharts

网络异常,图片无法展示
|

还可以使用源码编译安装,推荐使用 pip 命令直接安装,避免不必要的麻烦,除非你有定制 pyecharts 的需求

$ git clone https://github.com/pyecharts/pyecharts.git
$ cd pyecharts
$ pip install -r requirements.txt
$ python setup.py install
# 或者执行 python install.py

查看安装版本

importpyechartsprint(pyecharts.__version__)

网络异常,图片无法展示
|

使用体验

安装完当然就是用起来,就跟学习一门语言一样,我们先快速上手,来个 Hello world.pyecharts 跟其他 Python 库一样使用简单,学习成本低.这就是他的优秀之处,matplotlib 能实现的 pyecharts 同样有.

导包

按需导入

frompyecharts.chartsimportBar


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


上述例子同样可支持使用链式调用


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


网络异常,图片无法展示
|


render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件

也可以传入路径参数,如 bar.render("hello.html")就会在根目录创建一个 hello.html 的文件,html 文件里面会引用<script type="text/javascript" src="https://assets.pyecharts.org/assets/echarts.min.js"></script>

所以 pyecharts 是通过把 Python 代码转化为 html,然后调用官方提供的 Echarts 来绘图


常见问题及解决办法


图表无法展示问题


有些服务运行是需要服务器支持的,直接打开可能无法正常展示

解决方法:把生成的 render.html 文件放到服务器中运行

还有就是默认引用的资源为线上资源https://assets.pyecharts.org/assets/echarts.min.js,没有联网的情况也是无法展示的


解决方法


如果没有安装服务器可使用官方提供的 pyecharts-assets

pyecharts-assets 提供了 pyecharts 的资源文件

可以通过 localhost-server 或者 notebook-server 启动本地服务。首先将项目下载到本地


# 通过 git clone$ git clone https://github.com/pyecharts/pyecharts-assets.git# 或者直接下载压缩包$ wget https://github.com/pyecharts/pyecharts-assets/archive/master.zip

Localhost-Server

启动服务器

$ cd pyecharts-assets
$ python-m http.server


设置 host


# 只需要在顶部声明 CurrentConfig.ONLINE_HOST 即可frompyecharts.globalsimportCurrentConfigCurrentConfig.ONLINE_HOST="http://127.0.0.1:8000/assets/"# 接下来所有图形的静态资源文件都会来自刚启动的服务器frompyecharts.chartsimportBarbar=Bar()


Notebook-Server

安装扩展插件

$ cd pyecharts-assets
# 安装并激活插件$ jupyter nbextension install assets
$ jupyter nbextension enable assets/main


设置 host


# 只需要在顶部声明 CurrentConfig.ONLINE_HOST 即可frompyecharts.globalsimportCurrentConfig, OnlineHostType# OnlineHostType.NOTEBOOK_HOST 默认值为 http://localhost:8888/nbextensions/assets/CurrentConfig.ONLINE_HOST=OnlineHostType.NOTEBOOK_HOST# 接下来所有图形的静态资源文件都会来自刚启动的服务器frompyecharts.chartsimportBarbar=Bar()


上述方法能够解决本地执行或者 jupyternote 无法显示的问题


初体验


接下来我们体验各种图表的绘制


使用 options 配置项

在 pyecharts 中,一切皆选项。


frompyecharts.chartsimportBarfrompyechartsimportoptionsasoptsbar= (
Bar()
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
    .set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
# 或者直接使用字典参数# .set_global_opts(title_opts={"text": "主标题", "subtext": "副标题"}))
bar.render()


V1 版本开始支持链式调用

你所看到的格式其实是 black 格式化以后的效果

可以执行 pip install black 下载使用


网络异常,图片无法展示
|


使用 selenium 驱动程序将 pyecharts 输出渲染为图像

安装 snapshot_selenium
pip install snapshot-selenium

如果在运行程序报如下错误

selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home


是因为系统没找到浏览器的驱动导致的

下载 chromedriver.exe 驱动安装上即可


常用的网址:

http://chromedriver.storage.googleapis.com/index.html

http://npm.taobao.org/mirrors/chromedriver/

选择与浏览器对应的版本


查看浏览器版本


网络异常,图片无法展示
|


进入下载页面就会看到相关版本文件

网络异常,图片无法展示
|


选择对应版本进入页面下载正确平台驱动


网络异常,图片无法展示
|


windows 平台 32 和 64 位是通用的


具体操作


解压下载好的文件,并将解压好的 chromedriver.exe 文件复制到 Python 的安装目录下面,

要注意的是:Python 的安装目录在设置系统环境变量时是添加过的。

比如我的 python 是使用 Anaconda 安装的,所以安装目录是:E:\Anaconda3

(如果将 chromedriver.exe 放在其他的目录下面,也必须将这个目录添加到系统环境变量值里)


网络异常,图片无法展示
|


注意:如果设置了系统环境变量需要重启计算机后才会生效!!

解决报错问题,继续体验生成图片


frompyecharts.chartsimportBarfrompyecharts.renderimportmake_snapshot# 使用 snapshot-selenium 渲染图片fromsnapshot_seleniumimportsnapshotbar= (
Bar()
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 80, 90])
)
make_snapshot(snapshot, bar.render(), "mybar.png")


生成透明背景的高清图片,可以放到 PPT 展示


网络异常,图片无法展示
|


使用主题


有很多主题可供选择


网络异常,图片无法展示
|


frompyecharts.chartsimportBarfrompyechartsimportoptionsasopts# 内置主题类型可查看 pyecharts.globals.ThemeTypefrompyecharts.globalsimportThemeTypebar= (
Bar(init_opts=opts.InitOpts(theme=ThemeType.))
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
    .add_yaxis("商家B", [15, 6, 45, 20, 35, 66])
    .set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
)
bar.render()


网络异常,图片无法展示
|


折线图


importpyecharts.optionsasoptsfrompyecharts.chartsimportLinefrompyecharts.fakerimportFakerc= (
Line()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values())
    .add_yaxis("商家B", Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例"))
    .render("line_base.html")
)


网络异常,图片无法展示
|

其他图表


pyecharts 不但能画基本图形,更复杂炫酷的都可以实现,比如地图,关系图.....


总结


pyecharts 可谓是应有仅有,完全能够满足你的日常需求,也是我平时用来搭建可视化大屏常用的工具.页面美观,使用简单,支持海量数据.pyecharts 还能够和各类 Web 框架整合,如:Flask,Django,Tornado.本文旨在抛转引玉和解决常见问题,更多炫酷用法待你发现,可参考官方文档(https://pyecharts.org/#/zh-cn/)


--不积跬步,无以至千里,每天进步一点点,是在默默地创造一个意想不到的奇迹,共勉~

目录
相关文章
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
1月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
80 8
|
2月前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
101 5
|
2月前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势
|
2月前
|
数据采集 存储 数据可视化
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
|
4月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
73 1
|
4月前
|
机器学习/深度学习 数据可视化 数据挖掘
数据可视化大不同!Python数据分析与机器学习中的Matplotlib、Seaborn应用新视角!
在数据科学与机器学习领域,数据可视化是理解数据和优化模型的关键。Python凭借其强大的可视化库Matplotlib和Seaborn成为首选语言。本文通过分析一份包含房屋面积、卧室数量等特征及售价的数据集,展示了如何使用Matplotlib绘制散点图,揭示房屋面积与售价的正相关关系;并利用Seaborn的pairplot探索多变量间的关系。在机器学习建模阶段,通过随机森林模型展示特征重要性的可视化,帮助优化模型。这两个库在数据分析与建模中展现出广泛的应用价值。
62 2
|
4月前
|
数据可视化 数据挖掘 Python
逆袭之路!Python数据分析新手如何快速掌握Matplotlib、Seaborn,让数据说话更响亮?
在数据驱动时代,掌握数据分析技能至关重要。对于Python新手而言,Matplotlib和Seaborn是数据可视化的两大利器。Matplotlib是最基本的可视化库,适合绘制基础图表;Seaborn则提供高层次接口,专注于统计图形和美观样式。建议先学Matplotlib再过渡到Seaborn。快速上手Matplotlib需多实践,示例代码展示了绘制折线图的方法。Seaborn特色功能包括分布图、关系图及分类数据可视化,并提供多种主题和颜色方案。两者结合可实现复杂数据可视化,先用Seaborn绘制统计图,再用Matplotlib进行细节调整。熟练掌握这两者,将显著提升你的数据分析能力。
61 4
|
4月前
|
数据可视化 数据挖掘 Python
惊呆了!Python数据分析师如何用Matplotlib、Seaborn秒变数据可视化大师?
在数据驱动时代,分析师们像侦探一样在数字海洋中寻找线索,揭示隐藏的故事。数据可视化则是他们的“魔法棒”,将复杂数据转化为直观图形。本文将带你探索Python数据分析师如何利用Matplotlib与Seaborn这两大神器,成为数据可视化大师。Matplotlib提供基础绘图功能,而Seaborn在此基础上增强了统计图表的绘制能力,两者结合使数据呈现更高效、美观。无论是折线图还是箱形图,这两个库都能助你一臂之力。
53 4
|
5月前
|
数据可视化 数据挖掘 API
Python数据分析:数据可视化(Matplotlib、Seaborn)
数据可视化是数据分析中不可或缺的一部分,通过将数据以图形的方式展示出来,可以更直观地理解数据的分布和趋势。在Python中,Matplotlib和Seaborn是两个非常流行和强大的数据可视化库。本文将详细介绍这两个库的使用方法,并附上一个综合详细的例子。