【数据可视化】第五章—— 基于PyEcharts的数据可视化
m 宽 2024-08-06 12:33:07 阅读 52
文章目录
1. pyecharts数据可视化介绍2.pyecharts安装与使用3.全局配置项和系列配置项3.1 全局配置项3.1.1 基本元素配置项3.1.2 坐标轴配置项3.1.3 原生图形配置项
3.2 系列配置项3.2.1 样式类配置项3.2.2 标记类型配置项3.2.3 其它类配置项
4.运行环境4.1 生成HTML4.2 Jupyter Notebook4.3 Jupyter Lab
5.Pyecharts可视化绘图5.1 柱状图5.2 折线图5.3 饼图5.4 箱型图5.5 涟漪散点图5.6 K线图5.7 雷达图
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 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商品订单数量,绘制了两个商家商品订单量的柱状图。
<code>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="副标题"))code>
)
5.2 折线图
折线图是用直线段将各个数据点连接起来而组成的图像,以折线方式显示数据的变化趋势。折线图可以显示随时间而变化的连续数据,因此非常适合显示相等时间间隔的数据趋势。在折线图中,类别数据沿水平轴均匀分布,数值数据沿垂直轴均匀分布。例如为了显示不同订单日期的销售额走势,可以创建不同订单日期的销售额折线图。
(1) 参数配置:
(2) 例:各门店销售业绩比较分析
为了比较企业门店销售业绩,绘制了各门店的销售额和利润额的折线图。
(3)基本函数形式:
<code>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 饼图
基本函数形式:
<code>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="饼图"))code>
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))code>
)
c.render_notebook()
5.4 箱型图
箱型图是一种用作显示一组数据分散情况资料的统计图。在各种领域也经常被使用,常见于品质管理。
箱型图主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。
箱型图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数;然后,连接两个四分位数画出箱体;再将上边缘和下边缘与箱体相连接,中位数位于箱体中。
(1) 参数配置:
(2) 例:2019年销售额和利润额分析
为了分析2019年的销售额和利润额情况,绘制了不同的箱型图
(3) 基本函数形式:
<code>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) 基本函数形式:
<code>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) 基本函数形式:
<code>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%")],code>
title_opts=opts.TitleOpts(title="Kline-ItemStyle"),code>
)
.add_xaxis(["2017/7/{}".format(i + 1) for i in range(31)])
.add_yaxis(
"kline",
data,
itemstyle_opts=opts.ItemStyleOpts(
color="#ec0000",code>
color0="#00da3c",code>
border_color="#8A0000",code>
border_color0="#008F28",code>
),
)
)
5.7 雷达图
基本函数形式:
<code>c = (
Radar()
.add_schema(
schema=[
……
]
)
.add("预算分配", v1,linestyle_opts=opts.LineStyleOpts(color="#CD0000"))code>
.add("实际开销", v2,linestyle_opts=opts.LineStyleOpts(color="#5CACEE"))code>
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="Radar-单例模式"),code>
)
)
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/"))code>
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
)
c.render_notebook()
<code>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/"))code>
c.add_xaxis(x)
c.add_yaxis("示例", y) #'label',数值
# c.add_yaxis("商家B", Faker.values())
c.render_notebook()
<code>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"))code>
c.add_xaxis(x)
c.add_yaxis("示例", y) #'label',数值
# c.add_yaxis("商家B", Faker.values())
c.reversal_axis()
c.render_notebook()
<code>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"))code>
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()
<code>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"))code>
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()
<code>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"))code>
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="最大值"),code>
# opts.MarkPointItem(type_="min", name="最小值"), code>
# opts.MarkPointItem(type_="average", name="平均值"),code>
]
)
)
# c.add_yaxis("商家B", Faker.values())
c.render_notebook()
7. Line的基本使用
<code>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"))code>
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="最大值"),code>
# opts.MarkPointItem(type_="min", name="最小值"), code>
# opts.MarkPointItem(type_="average", name="平均值"),code>
]
)
)
# c.add_yaxis("商家B", Faker.values())
c.render_notebook()
<code>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-基本示例"))code>
c.render_notebook()
<code>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",code>
symbol_size=15,
linestyle_opts=opts.LineStyleOpts(color="green", width=3, type_="dashed"),code>
label_opts=opts.LabelOpts(is_show=False),
itemstyle_opts=opts.ItemStyleOpts(
border_width=2, border_color="orange", color="purple"code>
),)
# c.add_yaxis("商家B", Faker.values())
c.set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例"))code>
c.set_series_opts(label_opts=opts.LabelOpts(is_show=False),
markpoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(type_="max", name="最大值"),code>
opts.MarkPointItem(type_="min", name="最小值"),code>
# opts.MarkPointItem(type_="average", name="平均值"),code>
]
)
)
c.render_notebook()
<code>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",code>
symbol_size=15,
linestyle_opts=opts.LineStyleOpts(color="green", width=3, type_="dashed"),code>
label_opts=opts.LabelOpts(is_show=False),
itemstyle_opts=opts.ItemStyleOpts(
border_width=2, border_color="orange", color="purple"code>
),
areastyle_opts=opts.AreaStyleOpts(opacity=0.3))
# c.add_yaxis("商家B", Faker.values())
c.set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例"))code>
c.set_series_opts(label_opts=opts.LabelOpts(is_show=False),
markpoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(type_="max", name="最大值"),code>
opts.MarkPointItem(type_="min", name="最小值"),code>
# opts.MarkPointItem(type_="average", name="平均值"),code>
]
)
)
c.render_notebook()
<code>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(),code>
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"))code>
.add_yaxis("天津", v3,stack=1,is_smooth=True,areastyle_opts=opts.AreaStyleOpts(opacity=0.5,color="red")) code>
.set_series_opts(label_opts=opts.LabelOpts(is_show=False),
markpoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(type_="max", name="最大值"),code>
opts.MarkPointItem(type_="min", name="最小值"), code>
opts.MarkPointItem(type_="average", name="平均值"),code>
]))
)
c.render_notebook()
8. 饼图的基本使用
<code>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="饼图"))code>
c.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))code>
c.render_notebook()
<code>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()
<code>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="饼图"))code>
c.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))code>
c.render_notebook()
<code>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="饼图"))code>
c.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))code>
c.render_notebook()
<code>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")code>
c.add("", [list(z) for z in zip(labels, Faker.values())],
radius=["25%", "75%"],
center=["75%", "50%"],
rosetype="radius")code>
# c.set_colors(["blue", "green", "yellow", "red"])
c.set_global_opts(title_opts=opts.TitleOpts(title="饼图"))code>
c.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))code>
c.render_notebook()
<code>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="不同人发送邮件数量"))code>
.add("", [list(z) for z in zip(v1, v2)],radius=['10%', '70%'],center=['50%', '50%'],rosetype="radius")code>
# .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}%"))code>
)
c.render_notebook()
9. 本章小结
(1)ECharts是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,并能够兼容当前绝大部分浏览器。在功能上,ECharts可以提供直观,交互丰富,可高度个性化定制的数据可视化图表。
(2)pyecharts 是一个用于生成 Echarts 图表的类库,是一款将Python与ECharts相结合的强大的数据可视化工具,使用pyecharts可以让开发者轻松的实现大数据的可视化。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。