—— 基于PyEcharts的数据可视化
Posted mossloo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了—— 基于PyEcharts的数据可视化相关的知识,希望对你有一定的参考价值。
文章目录
- 1. pyecharts数据可视化介绍
- 2.pyecharts安装与使用
- 3.全局配置项和系列配置项
- 4.运行环境
- 5.Pyecharts可视化绘图
- 6. Bar的基本使用
- 7. Line的基本使用
- 8. 饼图的基本使用
- 9. 本章小结
1. pyecharts数据可视化介绍
pyecharts是一个用于生成 Echarts 图表的类库,是一款将Python与Echarts相结合的强大的数据可视化工具,使用pyecharts可以让开发者轻松的实现大数据的可视化。
官网 https://pyecharts.org/#/zh-cn/intro
Pyecharts是一个用于生成Echarts图表的库。代码相对简洁,可以生成Echarts风格的图表。
◾丰富的可视化类型: 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。
◾多种数据格式无需转换直接使用: 内置的 dataset 属性(4.0+)支持直接传入包括二维表,key-value 等多种格式的数据源,此外还支持输入 TypedArray 格式的数据。
◾千万数据的前端展现: 通过增量渲染技术(4.0+),配合各种细致的优化,ECharts 能够展现千万级的数据量。
◾移动端优化: 针对移动端交互做了细致的优化,例如移动端小屏上适于用手指在坐标系中进行缩放、平移。 PC 端也可以用鼠标在图中进行缩放(用鼠标滚轮)、平移等。
◾多渲染方案,跨平台使用: 支持以 Canvas、SVG(4.0+)、VML 的形式渲染图表。
◾深度的交互式数据探索: 提供了图例、视觉映射、数据区域缩放、tooltip、数据刷选等开箱即用的交互组件,可以对数据进行多维度数据筛取、视图缩放、展示细节等交互操作。
◾多维数据的支持以及丰富的视觉编码手段: 对于传统的散点图等,传入的数据也可以是多个维度的。
◾动态数据: 数据的改变驱动图表展现的改变。
◾绚丽的特效: 针对线数据,点数据等地理数据的可视化提供了吸引眼球的特效。
◾通过 GL 实现更多更强大绚丽的三维可视化: 在 VR,大屏场景里实现三维的可视化效果。
◾无障碍访问(4.0+): 支持自动根据图表配置项智能生成描述,使得盲人可以在朗读设备的帮助下了解图表内容,让图表可以被更多人群访问。
2.pyecharts安装与使用
在使用pyecharts之前,首先要安装它。在Windows命令行中使用以下命令来执行安装过程:
pip install pyecharts
执行后,可输入以下命令查看:
pip list
如用户需要用到地图图表,可自行安装对应的地图文件包。命令如下:
pip install echarts-countries-pypkg #安装全球国家地图
pip install echarts-china-provinces-pypkg#安装中国省级地图
pip install echarts-china-cities-pypkg#安装中国市级地图
在安装完地图库以后,即可进行地图的数据可视化显示。
3.全局配置项和系列配置项
图形的参数配置是数据可视化的基础,Pyecharts中的参数配置比较简单,可分为全局配置项和系列配置项
3.1 全局配置项
3.1.1 基本元素配置项
Pyecharts的基本元素配置项主要包括:InitOpts、ToolBoxFeatureOpts、ToolboxOpts、TitleOpts、DataZoomOpts、LegendOpts、VisualMapOpts、TooltipOpts等8个配置。
(1) InitOpts:
(2) ToolBoxFeatureOpts:
(3) ToolboxOpts:
(4) TitleOpts:
(5) DataZoomOpts :
(6) LegendOpts:
(7) VisualMapOpts:
(8) TooltipOpts:
3.1.2 坐标轴配置项
Pyecharts的坐标轴配置项主要包括:AxisOpts、AxisLineOpts、AxisTickOpts、AxisPointerOpts、SingleAxisOpts等5个配置。
(1) AxisOpts:
(2) AxisLineOpts:
(3) AxisTickOpts:
(4) AxisPointerOpts:
(5) SingleAxisOpts:
3.1.3 原生图形配置项
Pyecharts的原生图形配置项主要包括:GraphicGroup、GraphicItem、GraphicBasicStyleOpts、GraphicShapeOpts、GraphicImage、GraphicText、GraphicTextStyleOpts、GraphicRect等8个配置。
(1) GraphicGroup:
(2) GraphicItem:
(3) GraphicBasicStyleOpts:
(4) GraphicShapeOpts:
(5) GraphicImage:
(6) GraphicText:
(7) GraphicTextStyleOpts:
(8) GraphicRect:
3.2 系列配置项
3.2.1 样式类配置项
Pyecharts的样式类配置项主要包括:ItemStyleOpts、TextStyleOpts、LabelOpts、LineStyleOpts、SplitLineOpts等5个配置。
(1) ItemStyleOpts:
(2) TextStyleOpts:
(3) LabelOpts:
(4) LineStyleOpts:
(5) SplitLineOpts:
3.2.2 标记类型配置项
Pyecharts的标记类型配置项主要包括:MarkPointItem、MarkPointOpts、MarkLineItem、MarkLineOpts、MarkAreaItem、MarkAreaOpts等6个配置。
(1) MarkPointItem:
(2) MarkPointOpts:
(3) MarkLineItem :
(4) MarkLineOpts:
(5) MarkAreaItem:
(6) MarkAreaOpts:
3.2.3 其它类配置项
Pyecharts的其它类配置项主要包括:EffectOpts、AreaStyleOpts、SplitAreaOpts等3个配置。
(1) EffectOpts:
(2) AreaStyleOpts:
(3) SplitAreaOpts:
4.运行环境
4.1 生成html
Pyecharts可以通过render函数生成HTML文件,下面的代码将结果生成html文件。
……
bar.render(‘bar.html’)
4.2 Jupyter Notebook
Pyecharts可以在Jupyter Notebook环境中运行。
……
bar.render_notebook()
4.3 Jupyter Lab
Pyecharts可以在Jupyter Lab环境中运行。
……
#第一次渲染时候调用load_javascript文件
bar.load_javascript()
bar.render_notebook()
5.Pyecharts可视化绘图
Pyecharts可以方便的绘制一些基础视图,包括柱状图,折线图,箱型图,涟漪散点图,K线图以及双坐标轴图等
5.1 柱状图
柱状图是一种把连续数据画成数据条的表现形式,通过比较不同组的柱状长度,从而对比不同组的数据量大小。
描绘柱状图的要素有3个:组数、宽度、组限。绘制柱状图时,不同组之间是有空隙的。柱状用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用与较小的数据集分析。柱状图也可以多维表达。
(1) 参数配置:
(2) 基本函数形式:
c = (
Bar()
.set_global_opts(title_opts=opts.TitleOpts(title=“Bar-基本示例”, subtitle=“我是副标题”,title_link=“https://pyecharts.org/#/zh-cn/”))
.add_xaxis(Faker.choose())
.add_yaxis(“商家A”, Faker.values())
.add_yaxis(“商家B”, Faker.values())
)
(3) 例:商家A与B商品订单数量分析
为了分析商家A与B商品订单数量,绘制了两个商家商品订单量的柱状图。
bar = Bar()
bar = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
.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="副标题"))
)
5.2 折线图
折线图是用直线段将各个数据点连接起来而组成的图像,以折线方式显示数据的变化趋势。折线图可以显示随时间而变化的连续数据,因此非常适合显示相等时间间隔的数据趋势。在折线图中,类别数据沿水平轴均匀分布,数值数据沿垂直轴均匀分布。例如为了显示不同订单日期的销售额走势,可以创建不同订单日期的销售额折线图。
(1) 参数配置:
(2) 例:各门店销售业绩比较分析
为了比较企业门店销售业绩,绘制了各门店的销售额和利润额的折线图。
(3)基本函数形式:
line = Line()
line.set_global_opts(
title_opts = opts.TitleOpts(title = "门店销售额利润额的比较分析", subtitle = "2019年企业经营状况分析"),
toolbox_opts = opts.ToolboxOpts(),
legend_opts = opts.LegendOpts(is_show = True)
)
line.add_xaxis(v1)
line.add_yaxis(“销售额”,v2,is_smooth = True) #is_smooth默认是False,即折线;is_selected默认是False,即不选中
line.add_yaxis("利润额",v3,is_smooth = True, is_selected = True)
5.3 饼图
基本函数形式:
c = (
Pie()
.add("", [list(z) for z in zip(Faker.choose(), Faker.values())])
.set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])
.set_global_opts(title_opts=opts.TitleOpts(title="饼图"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="b: c"))
)
c.render_notebook()
5.4 箱型图
箱型图是一种用作显示一组数据分散情况资料的统计图。在各种领域也经常被使用,常见于品质管理。
箱型图主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。
箱型图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数;然后,连接两个四分位数画出箱体;再将上边缘和下边缘与箱体相连接,中位数位于箱体中。
(1) 参数配置:
(2) 例:2019年销售额和利润额分析
为了分析2019年的销售额和利润额情况,绘制了不同的箱型图
(3) 基本函数形式:
boxplot = Boxplot()
boxplot.set_global_opts(
title_opts = opts.TitleOpts(title = "2019年销售额和利润额分析",subtitle = "2019年企业经营状况分析"),
toolbox_opts = opts.ToolboxOpts(is_show = False),
legend_opts = opts.LegendOpts(is_show = True)
)
boxplot.add_xaxis(["2019年业绩"])
boxplot.add_yaxis("销售额",boxplot.prepare_data([v2]))
boxplot.add_yaxis("利润额",boxplot.prepare_data([v3]))
5.5 涟漪散点图
涟漪散点图是一类特殊的散点图,只是散点图中带有涟漪特效,利用特效可以突出显示某些想要的数据。
(1) 参数配置:
(2) 例:涟漪散点图各种图形
(3) 基本函数形式:
es = EffectScatter()
es.set_global_opts(
title_opts = opts.TitleOpts(title = "涟漪散点图分布",subtitle = "各种类型"),
xaxis_opts = opts.AxisOpts(splitline_opts = opts.SplitLineOpts(is_show = True)),
yaxis_opts = opts.AxisOpts(splitline_opts = opts.SplitLineOpts(is_show = True)),
toolbox_opts = opts.ToolboxOpts(False),
legend_opts = opts.LegendOpts(is_show = True)
)
es.add_xaxis(v1)
es.add_yaxis("",v2,symbol = SymbolType.ARROW)
es.render_notebook()
5.6 K线图
K线图又称蜡烛图,股市及期货市场中的K线图的画法包含四个数据,即开盘价,最高价,最低价,收盘价,所有的K线都是围绕这四个指标展开,反映股票的情况。
如果把每日的K线图放在一张纸上,就能得到日K线图,同样也可以画出周K线图,月K线图。
(1) 参数配置:
(2) 例:企业股票价格趋势分析
(3) 基本函数形式:
c = (
Kline()
.set_global_opts(
xaxis_opts=opts.AxisOpts(is_scale=True),
yaxis_opts=opts.AxisOpts(
is_scale=True,
splitarea_opts=opts.SplitAreaOpts(
is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
),
),
datazoom_opts=[opts.DataZoomOpts(pos_bottom="-2%")],
title_opts=opts.TitleOpts(title="Kline-ItemStyle"),
)
.add_xaxis(["2017/7/".format(i + 1) for i in range(31)])
.add_yaxis(
"kline",
data,
itemstyle_opts=opts.ItemStyleOpts(
color="#ec0000",
color0="#00da3c",
border_color="#8A0000",
border_color0="#008F28",
),
)
)
5.7 雷达图
基本函数形式:
c = (
Radar()
.add_schema(
schema=[
……
]
)
.add("预算分配", v1,linestyle_opts=opts.LineStyleOpts(color="#CD0000"))
.add("实际开销", v2,linestyle_opts=opts.LineStyleOpts(color="#5CACEE"))
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="Radar-单例模式"),
)
)
6. Bar的基本使用
import pyecharts.options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
c = (
Bar()
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题",title_link="https://pyecharts.org/#/zh-cn/"))
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
)
c.render_notebook()
import pyecharts.options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
x = [0,1,2,3,4,5]
y = [1,2,3,2,4,3]
c = Bar()
c.set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="pyecharts",title_link="https://pyecharts.org/#/zh-cn/"))
c.add_xaxis(x)
c.add_yaxis("示例", y) #'label',数值
# c.add_yaxis("商家B", Faker.values())
c.render_notebook()
import pyecharts.options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
x = ['战狼2','速度与激情8','功夫瑜伽','西游伏妖篇',
'变形金刚5:最后的骑士','摔跤吧!爸爸',
'加勒比海盗5:死无对证','金刚:骷髅岛',
'极限特工:终极回归','生化危机6:终章',
'乘风破浪','神偷奶爸3','智取威虎山','大闹天竺',
'金刚狼3:殊死一战','蜘蛛侠:英雄归来','悟空传',
'银河护卫队2','情圣','新木乃伊']
y = [56.01,26.94,17.53,16.49,15.45,12.96,
11.8,11.61,11.28,11.12,10.49,10.3,8.75,
7.55,7.32,6.99,6.88,6.86,6.58,6.23]
c = Bar()
c.set_global_opts(title_opts=opts.TitleOpts(title="电影票房", subtitle="pyecharts"))
c.add_xaxis(x)
c.add_yaxis("示例", y) #'label',数值
# c.add_yaxis("商家B", Faker.values())
c.reversal_axis()
c.render_notebook()
import pyecharts.options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
a = ['猩球崛起3:终极之战','敦刻尔克','蜘蛛侠:英雄归来','战狼2']
b_14 = [2358,399,2358,362]
b_15 = [12357,156,2045,168]
b_16 = [15746,312,4497,319]
c = Bar(init_opts=opts.InitOpts(theme=ThemeType.MACARONS))
c.set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="pyecharts"))
c.add_xaxis(a)
c.add_yaxis("14日票房", b_14, gap = '0%') #'label',数值
c.add_yaxis("15日票房", b_15, gap = '0%')
c.add_yaxis("16日票房", b_16, gap = '0%')
# c.add_yaxis("商家B", Faker.values())
c.render_notebook()
import pyecharts.options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
a = ['猩球崛起3:终极之战','敦刻尔克','蜘蛛侠:英雄归来','战狼2']
b_14 = [2358,399,2358,362]
b_15 = [12357,156,2045,168]
b_16 = [15746,312,4497,319]
c = Bar(init_opts=opts.InitOpts(theme=ThemeType.MACARONS))
c.set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="pyecharts"))
c.add_xaxis(a)
c.add_yaxis("14日票房", b_14, gap = '0%', stack = '1') #'label',数值
c.add_yaxis("15日票房", b_15, gap = '0%', stack = '1')
c.add_yaxis("16日票房", b_16, gap = '0%')
c.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
# c.add_yaxis("商家B", Faker.values())
c.render_notebook()
import pyecharts.options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
a = ['猩球崛起3:终极之战','敦刻尔克','蜘蛛侠:英雄归来','战狼2']
b_14 = [2358,399,2358,362]
b_15 = [12357,156,2045,168]
b_16 = [15746,312,4497,319]
c = Bar(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE))
c.set_global_opts(title_opts基于Python的数据可视化库pyecharts介绍
什么是pyecharts?
pyecharts 是一个用于生成 Echarts 图表的类库。
echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化。pyecharts 是一个用于生成 Echarts 图表的类库。实际上就是 Echarts 与 Python 的对接。
使用 pyecharts 可以生成独立的网页,也可以在 flask , Django 中集成使用。
pyecharts包含的图表
Bar 、Bar3D、Boxplot、EffectScatter 、Funnel、Gauge、Geo、Graph、HeatMap 、Kline、Line、Line3D、Liquid、Map、Parallel、Pie、Polar、Radar、Sankey、Scatter、Scatter3D 、ThemeRiver、WordCloud
pyecharts基本使用
柱状图基本使用
饼图的基本使用
云词图基本使用
等等案例,就不一一列举了,python再好,它终究还是需要靠写代码来完成的,这样解决不了生产力的问题,同时也达不到人人都是数据分析师的这样一个愿景,那有没有更好的解决办法呢,答案是肯定的。
NBI一站式大数据可视化分析平台(nbi.easydatavis.com:8033)
NBI一站式大数据可视化分析平台是一款基于B/S架构的数据可视化构建平台,NBI大数据平台的设计理念是提供简单、快速、可控、可交互为目的的数据可视化产品。
NBI大数据平台支持多种数据源无缝连接,能快速整合数据;
在NBI大数据平台中,我们封装了多达二三十种数据可视化组件供用户使用,提供了丰富的组件属性配置,让图表更具表现力;
同时提供了拖拽式操作方式,用户可以任意DIY数据可视化报告;NBI大数据可视化平台支持两种布局模式:(1)自由式布局和(2)流式布局方式供用户使用
几分钟即可做好数据可视化分析,极大的降低了人力、物力的投入
以上是关于—— 基于PyEcharts的数据可视化的主要内容,如果未能解决你的问题,请参考以下文章
基于requests+pyecharts+MySQL的疫情可视化BI大屏