赞
踩
在当今的大数据时代,数据分析与可视化已经成为我们理解和解释数据的重要工具。Pyecharts是一个强大的Python可视化库,它可以帮助我们轻松地创建各种类型的图表,包括折线图、柱状图、饼图、散点图等。在本篇文章中,我将分享一些我学习到的Pyecharts进行数据分析和可视化的实践经验。
Pyecharts是一个基于Python的开源可视化库,它能够生成Echarts图表的JSON数据,并使用JavaScript进行渲染。Echarts是一个使用JavaScript开发的,开源的数据可视化库,它可以生成各种类型的图表,包括折线图、柱状图、饼图、散点图等。
接下来,我们将通过一系列的实践案例,带领你逐步掌握Pyecharts的使用技巧。以下实验将使用线型面积图、液态图、map地图和堆叠柱状图四个图表来创建一个2*2的数据可视化大屏。
在进行数据可视化之前,我们需要对数据进行清洗和整理。这一步通常涉及到数据筛选、缺失值处理、异常值检测等操作。在Python中,我们可以使用Pandas库来进行这些操作。
pyecharts
库来生成一个堆叠柱状图(Bar)导入需要用到的库
- from pyecharts import options as opts #用于设置图表选项
- from pyecharts.charts import Bar #用于创建柱状图
- from pyecharts.faker import Faker #类用于生成模拟数据
创建一个柱状图对象
- Bar = (
- 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-堆叠数据(全部)"))
-
- )
最后使用.render_notebook()渲染Line图表,可以直接在NoteBook中查看生成的图表,而不需要保存为HTML文件后再打开
line.render_notebook() #使用.render_notebook()渲染图表
得到的图像如下
pyecharts
库来生成一个线型面积图(Line)导入需要用到的库
- import pyecharts.options as opts
- from pyecharts.charts import Line #用于创建线型图表
- from pyecharts.faker import Faker #用于生成模拟数据
创建一个线性图表对象并渲染图像
- Line = (
- Line() #创建一个线型图表对象
- .add_xaxis(Faker.choose())
- .add_yaxis("商家A", Faker.values(), is_smooth=True)
- .add_yaxis("商家B", Faker.values(), is_smooth=True)
- .set_series_opts(
- areastyle_opts=opts.AreaStyleOpts(opacity=0.5),
- label_opts=opts.LabelOpts(is_show=False),
- )
- .set_global_opts(
- title_opts=opts.TitleOpts(title="Line-面积图(紧贴 Y 轴)"),
- xaxis_opts=opts.AxisOpts(
- axistick_opts=opts.AxisTickOpts(is_align_with_label=True),
- is_scale=False,
- boundary_gap=False,
- ),
- )
-
- )
- Line.render_notebook()

渲染后图像如下:
pyecharts
库来生成一个液态图(Liquid)导入模块库
- from pyecharts import options as opts
- from pyecharts.charts import Liquid #用于创建线型图表
- from pyecharts.globals import SymbolType #用于定义图表的形状类型
创建一个地图对象并渲染Liquid图表
- Liquid = (
- Liquid()
- .add("lq", [0.3, 0.7], is_outline_show=False, shape=SymbolType.DIAMOND)
- .set_global_opts(title_opts=opts.TitleOpts(title="Liquid-Shape-Diamond"))
-
- )
- Liquid.render_notebook()
查看渲染后的图
pyecharts
库来生成一个中国地图(Map)导入用到的库
- from pyecharts import options as opts
- from pyecharts.charts import Map
- from pyecharts.faker import Faker
创建一个地图对象并渲染创建一个地图对象并渲染map图表
- map = (
- Map()
- .add("中国地图", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
- .set_global_opts(title_opts=opts.TitleOpts(title=""))
-
- )
- map.render_notebook()
得下图
- from pyecharts.charts import Pie
- from pyecharts import options as opts
- from datetime import datetime
- now_time = datetime.now().strftime('%Y-%m-%d') # 获取当前时间
- big_title = (
- Pie() # 不画图,只显示一个标题,用来构成大屏的标题
- .set_global_opts(
- title_opts=opts.TitleOpts(title="大屏标题",
- title_textstyle_opts=opts.TextStyleOpts(font_size=40,
- # color='#FFFFFF',
- ),
- subtitle = f'截至:{now_time}',
- pos_top=10
- )
- )
- )
- big_title.render_notebook()

所得图表如下
为了更好地展示数据之间的关系,我们可能需要将多个图表整合到一个大屏中。Pyecharts支持在一个页面上添加多个图表,我们可以使用Page类来创建一个网格或页面,然后将各个图表添加到其中。
- from pyecharts.charts import Page
- page = Page()
- page.add(
- big_title, #大屏标题
- Bar, #堆叠柱状图
- Line, #线型面积图
- Liquid, #液态图
- map #地图
- )
- page.render('page.html') # 将页面渲染为一个 HTML 文件,文件名为 'page.html',可以用任何 Web 浏览器打开它来查看图表
导入用于解析HTML和XML文档的Python库
from bs4 import BeautifulSoup
'运行
在创建基本的图表后,我们还需要根据需求定制图表的样式。Pyecharts提供了丰富的样式选项,如颜色、字体、图例等。通过set_global_opts方法,我们可以设置图表的标题、坐标轴标题等全局选项。
- with open("page.html", "r+", encoding='utf-8') as html:
- html_bf = BeautifulSoup(html, 'lxml')
- divs = html_bf.select('.chart-container') # 根据css定位标签,选中图像的父节点标签
- divs[0]["style"] = "width:420px;height:55px;position:absolute;top:20px;left:350px;border-style:dashed;border-color:#444444;border-width:0px;"
- divs[1]["style"] = "width:420px;height:274px;position:absolute;top:100px;left:30px;border-style:solid;border-color:#444444;border-width:2px;"
- divs[2]["style"] = "width:420px;height:274px;position:absolute;top:100px;left:470px;border-style:solid;border-color:#444444;border-width:2px;"
- divs[3]["style"] = "width:420px;height:274px;position:absolute;top:400px;left:30px;border-style:solid;border-color:#444444;border-width:2px;"
- divs[4]["style"] = "width:420px;height:274px;position:absolute;top:400px;left:470px;border-style:solid;border-color:#444444;border-width:2px;"
- body = html_bf.find("body") # 根据标签名称定位到body标签
- body["style"] = "background-color:white;" # 修改背景颜色
- html_new = str(html_bf) # 将BeautifulSoup对象转换为字符
- html.seek(0, 0) # 光标移动至
- html.truncate() # 删除光标后的所有字符内容
- html.write(html_new) # 将由BeautifulSoup对象转换得到的字符重新写入html文件
- html.close()
最后,我们将整个大屏发布到Web应用程序中,或者分享给其他人查看。Pyecharts支持将图表渲染为HTML文件,这样我们就可以将整个大屏嵌入到Web页面中,或者将HTML文件分享给他人查看。
通过以上的实践案例,我们可以看到Pyecharts在数据可视化大屏方面的强大功能和灵活性。它不仅可以帮助我们快速地创建出各种类型的图表,还可以定制图表的样式和整合多个图表。同时,Pyecharts还支持多平台展示和分享,使得我们能够轻松地将数据可视化大屏嵌入到Web应用程序中或分享给他人查看。未来,随着Pyecharts的不断更新和完善,相信其在数据可视化领域的应用将会更加广泛和深入。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。