首页IT科技数据可视化的挑战(【数据可视化】第五章—— 基于PyEcharts的数据可视化)

数据可视化的挑战(【数据可视化】第五章—— 基于PyEcharts的数据可视化)

时间2025-06-20 20:50:58分类IT科技浏览4471
导读:1. pyecharts数据可视化介绍...

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=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.set_series_opts(label_opts=opts.LabelOpts(is_show=False), markline_opts=opts.MarkLineOpts( data=[ opts.MarkLineItem(type_="max", name="最大值"), # opts.MarkPointItem(type_="min", name="最小值"), # opts.MarkPointItem(type_="average", name="平均值"), ] ) ) # c.add_yaxis("商家B", Faker.values()) c.render_notebook()

7. Line的基本使用

import pyecharts.options as opts from pyecharts.charts import Line 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 = Line(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE)) c.set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="pyecharts")) c.add_xaxis(a) c.add_yaxis("14日票房", b_14) #label,数值 c.add_yaxis("15日票房", b_15) c.add_yaxis("16日票房", b_16) c.set_series_opts(label_opts=opts.LabelOpts(is_show=False), markline_opts=opts.MarkLineOpts( data=[ opts.MarkLineItem(type_="max", name="最大值"), # opts.MarkPointItem(type_="min", name="最小值"), # opts.MarkPointItem(type_="average", name="平均值"), ] ) ) # c.add_yaxis("商家B", Faker.values()) c.render_notebook() import pyecharts.options as opts from pyecharts.charts import Line from pyecharts.faker import Faker c = Line() c.add_xaxis(Faker.choose()) c.add_yaxis("商家A", Faker.values()) c.add_yaxis("商家B", Faker.values()) c.set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例")) c.render_notebook() import pyecharts.options as opts from pyecharts.charts import Line from pyecharts.faker import Faker x = range(0,10,2) y = [2,1,3,5,4] c = Line() c.add_xaxis(x) c.add_yaxis("商家A", y, is_smooth = True, symbol="circle", symbol_size=15, linestyle_opts=opts.LineStyleOpts(color="green", width=3, type_="dashed"), label_opts=opts.LabelOpts(is_show=False), itemstyle_opts=opts.ItemStyleOpts( border_width=2, border_color="orange", color="purple" ),) # c.add_yaxis("商家B", Faker.values()) c.set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例")) c.set_series_opts(label_opts=opts.LabelOpts(is_show=False), markpoint_opts=opts.MarkPointOpts( data=[ opts.MarkPointItem(type_="max", name="最大值"), opts.MarkPointItem(type_="min", name="最小值"), # opts.MarkPointItem(type_="average", name="平均值"), ] ) ) c.render_notebook() import pyecharts.options as opts from pyecharts.charts import Line from pyecharts.faker import Faker x = range(0,10,2) y = [2,1,3,5,4] c = Line() c.add_xaxis(x) c.add_yaxis("商家A", y, is_smooth = True, symbol="circle", symbol_size=15, linestyle_opts=opts.LineStyleOpts(color="green", width=3, type_="dashed"), label_opts=opts.LabelOpts(is_show=False), itemstyle_opts=opts.ItemStyleOpts( border_width=2, border_color="orange", color="purple" ), areastyle_opts=opts.AreaStyleOpts(opacity=0.3)) # c.add_yaxis("商家B", Faker.values()) c.set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例")) c.set_series_opts(label_opts=opts.LabelOpts(is_show=False), markpoint_opts=opts.MarkPointOpts( data=[ opts.MarkPointItem(type_="max", name="最大值"), opts.MarkPointItem(type_="min", name="最小值"), # opts.MarkPointItem(type_="average", name="平均值"), ] ) ) c.render_notebook() import pyecharts.options as opts from pyecharts.charts import Line from pyecharts.globals import ThemeType v1 = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"] v2 = [24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120] #北京 v3 = [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79] #天津 c = ( Line(init_opts=opts.InitOpts(theme=ThemeType.MACARONS)) .set_global_opts(title_opts=opts.TitleOpts(title="北京与天津个月销售数量分布的折线图"),legend_opts=opts.LegendOpts(is_show=True),datazoom_opts=opts.DataZoomOpts(), axispointer_opts= opts.AxisOpts(boundary_gap=["20%","20%"])) .add_xaxis(v1) .add_yaxis("北京",v2,stack=1,is_smooth=True,areastyle_opts=opts.AreaStyleOpts(opacity=0.5,color="purple")) .add_yaxis("天津", v3,stack=1,is_smooth=True,areastyle_opts=opts.AreaStyleOpts(opacity=0.5,color="red")) .set_series_opts(label_opts=opts.LabelOpts(is_show=False), markpoint_opts=opts.MarkPointOpts( data=[ opts.MarkPointItem(type_="max", name="最大值"), opts.MarkPointItem(type_="min", name="最小值"), opts.MarkPointItem(type_="average", name="平均值"), ])) ) c.render_notebook()

8. 饼图的基本使用

from pyecharts import options as opts from pyecharts.charts import Pie from pyecharts.faker import Faker from pyecharts.globals import ThemeType #定制主题 c = Pie() c.add("", [list(z) for z in zip(Faker.choose(), Faker.values())]) c.set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"]) c.set_global_opts(title_opts=opts.TitleOpts(title="饼图")) c.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%")) c.render_notebook() import matplotlib.pyplot as plt import numpy as np import matplotlib matplotlib.rcParams[font.family] = [Kaiti] #设置字体 plt.figure(figsize = (5,5),dpi = 100) sizes = [45,30,15,10] #设置每部分大小 labels = [计算机系,机械系,管理系,社科系] explode = [0.1,0,0,0] #设置每部分凹凸 colors = [c,g,b,m] plt.pie(sizes, labels = labels, explode = explode, colors = colors, labeldistance = 1, autopct = %.1f%%, counterclock = False, startangle = 90, shadow = True) plt.title(饼图,fontsize = 20);#设置标题 plt.show() from pyecharts import options as opts from pyecharts.charts import Pie from pyecharts.faker import Faker from pyecharts.globals import ThemeType #定制主题 sizes = [45,30,15,10] #设置每部分大小 labels = [计算机系,机械系,管理系,社科系] c = Pie() c.add("", [list(z) for z in zip(labels, sizes)]) c.set_colors(["blue", "green", "yellow", "red"]) c.set_global_opts(title_opts=opts.TitleOpts(title="饼图")) c.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%")) c.render_notebook() from pyecharts import options as opts from pyecharts.charts import Pie from pyecharts.faker import Faker from pyecharts.globals import ThemeType #定制主题 sizes = [45,30,15,10] #设置每部分大小 labels = [计算机系,机械系,管理系,社科系] c = Pie(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE)) c.add("", [list(z) for z in zip(labels, sizes)],radius=["40%", "75%"]) # c.set_colors(["blue", "green", "yellow", "red"]) c.set_global_opts(title_opts=opts.TitleOpts(title="饼图")) c.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%")) c.render_notebook() from pyecharts import options as opts from pyecharts.charts import Pie from pyecharts.faker import Faker from pyecharts.globals import ThemeType #定制主题 sizes = [45,30,15,10] #设置每部分大小 labels = [计算机系,机械系,管理系,社科系] c = Pie(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE)) c.add("", [list(z) for z in zip(labels, sizes)], radius=["25%", "60%"], center=["25%", "50%"], rosetype="radius") c.add("", [list(z) for z in zip(labels, Faker.values())], radius=["25%", "75%"], center=["75%", "50%"], rosetype="radius") # c.set_colors(["blue", "green", "yellow", "red"]) c.set_global_opts(title_opts=opts.TitleOpts(title="饼图")) c.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%")) c.render_notebook() from pyecharts.charts import Pie from pyecharts import options as opts from pyecharts.globals import ThemeType v1 = ["鲁帆", "章戎", "王海强", "诸葛菠萝", "徐天宏", "张明"] v2 = [25, 14, 12, 28, 8, 5] v2 = sorted(v2) c = ( Pie(init_opts=opts.InitOpts(theme=ThemeType.MACARONS)) .set_global_opts(title_opts=opts.TitleOpts(title="不同人发送邮件数量")) .add("", [list(z) for z in zip(v1, v2)],radius=[10%, 70%],center=[50%, 50%],rosetype="radius") # .set_colors( # [rgb({r},10,{b}).format(r=255-20*(len(v2)-x+1), b=255-15*x) for x in range(len(v2))] # ) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%")) ) c.render_notebook()

9. 本章小结

(1)ECharts是一个使用 JavaScript 实现的开源可视化库             ,可以流畅的运行在 PC 和移动设备上                   ,并能够兼容当前绝大部分浏览器                   。在功能上       ,ECharts可以提供直观      ,交互丰富                   ,可高度个性化定制的数据可视化图表                    。

(2)pyecharts 是一个用于生成 Echarts 图表的类库             ,是一款将Python与ECharts相结合的强大的数据可视化工具      ,使用pyecharts可以让开发者轻松的实现大数据的可视化。
声明:本站所有文章                   ,如无特殊说明或标注             ,均为本站原创发布            。任何个人或组织,在未征得本站同意时                   ,禁止复制      、盗用                   、采集             、发布本站内容到任何网站      、书籍等各类媒体平台                    。如若本站内容侵犯了原著者的合法权益                   ,可联系我们进行处理       。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
express跨域设置(【node进阶】深度解析express框架—编写接口|解决跨域问题)