pyecharts 是一个用于生成 Echarts 图表的类库。Echarts是百度开源的一个数据可视化 JS 库。
用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。
本文介绍为1.0版本
官网:官网链接
中文文档:https://pyecharts.org/#/zh-cn/intro
优点:
与Echarts结合
与Web端结合
超强交互性
国人开发的项目
1.模块安装
Windows :
pip install pyecharts_jupyter_installer
pip install pyecharts
Mac:
pip3 install pyecharts_jupyter_installer
pip3 install pyecharts
或者直接:
pip install pyecharts
pip3 install pyecharts
2.图表绘制流程:
- chart_name = 图表类型() 初始化具体类型图表。
- chart_name.add() 添加数据及配置项。
2.1 chart_name.add_xaxis() 添加横坐标名称
2.2 chart_name.add_yaxis() 添加纵坐标数据 - chart_name.render() 渲染生成 .html 文件。
3.导入模块
from pyecharts.faker import Faker #创建虚构的数据
from pyecharts import options as opts #配置
from pyecahrts.charts import Bar #bar图
4.绘制二维柱状图
1.输入数据
from pyecharts import options as opts #配置
from pyecharts.charts import Bar #bar图
bar = Bar() #实例化 柱状图/条形图
bar.add_xaxis(["衬衫",'毛衣','裤子','领带','帽子']) #add_xaxis(x轴标签列表)
bar.add_yaxis('商家',[93,92,120,111,121]) #add_yaxis(名称,y轴数据列表)
bar.render()
#注意数据得到的是python的list/列表类型,
如果是numpy的数组需要转换为list
2.或者利用faker,获取随机的数据
rom pyecharts.faker import Faker #创建虚构的数据
from pyecharts import options as opts #配置
from pyecharts.charts import Bar #bar图
bar = Bar() #实例化 柱状图/条形图
#bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90])
#bar.add_xaxis(["衬衫",'毛衣','裤子','领带','帽子']) #add_xaxis(x轴标签列表)
#bar.add_yaxis('商家',[93,92,120,111,121]) #add_yaxis(名称,y轴数据列表)
#注意数据得到的是python的list/列表类型,如果是numpy的数组需要转换为list
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家",Faker.values())
bar.render()
3.添加标题副标题
bar.set_global_opts(title_opts=opts.TitleOpts(title="Bar-演示",subtitle="副标题"))
4.变更主题
from pyecharts.globals import ThemeType
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK))
当然也可以采用其他官方提供的主题或自己设定主题
5.设定高度宽度
bar = Bar(
init_opts=opts.InitOpts(
theme=ThemeType.CHALK,
width="1280x",
height="720x"))
6.旋转标签
bar.set_global_opts(
title_opts=opts.TitleOpts(
title="Bar-演示",
subtitle="副标题"),
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=30))) #旋转x轴标签
7.两两堆叠制作效果图
bar.add_yaxis("商家A",Faker.values(),stack="stack1") #两两堆叠制作效果图 stack1堆2数据
bar.add_yaxis("商家B",Faker.values(),stack="stack1")
bar.add_yaxis("商家C",Faker.values(),stack="stack2")
bar.add_yaxis("商家D",Faker.values(),stack="stack2")
8.柱状图标记点/线
bar.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="最小值"),
]
),
markline_opts=opts.MarkPointOpts( #标记线
data=[
opts.MarkPointItem(type_="average",name="平均值"),
]
),
)
9.柱状图xy交换
bar.reversal_axis() #柱状图xy交换
10.窗口滑块
bar.set_global_opts(
title_opts=opts.TitleOpts(
title="Bar-演示",
subtitle="副标题"),
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=30)), #旋转x轴标签
datazoom_opts=[opts.DataZoomOpts()]) #窗口滑块效果
5.绘制三维柱状图
1.导入模块,创建数据
from pyecharts.charts import Bar3D
data = [(i,j,random.randint(0,12) for i in range(24) for j in range(6))]
#创建数据,数据是一个列表,每一项都是一个三个元素组成的列表/元祖
#【x坐标,y坐标,z坐标】
2.创建
from pyecharts.faker import Faker
from pyecharts.charts import Bar3D
from pyecharts import options as opts
import random
data = [(i, j, random.randint(0,12)) for i in range(24) for j in range(6)]
#创建数据,数据是一个列表,每一项都是一个三个元素组成的列表/元祖
#【x坐标,y坐标,z坐标】
bar3d = Bar3D()
bar3d.add(
"",
data,
xaxis3d_opts=opts.Axis3DOpts(Faker.clock,type_="category"), #
yaxis3d_opts=opts.Axis3DOpts(Faker.week_en,type_="category"),
zaxis3d_opts=opts.Axis3DOpts(type_="value"), #数值
)
bar3d.set_global_opts(
visualmap_opts=opts.VisualMapOpts(max_=20),
title_opts=opts.TitleOpts(title="3D演示"),
)
bar3d.render()
6.折线图
#折线图
from pyecharts.faker import Faker
from pyecharts.charts import Line
from pyecharts import options as opts
line = Line()
line.add_xaxis(Faker.choose())
line.add_yaxis("商家A",Faker.values(),
is_smooth=True, #平滑
)
line.add_yaxis("商家B",Faker.values())
line.set_global_opts(title_opts=opts.TitleOpts(title="折线图演示"))
line.render()
7.面积图
#折线图
from pyecharts.faker import Faker
from pyecharts.charts import Line
from pyecharts import options as opts
line = Line()
line.add_xaxis(Faker.choose())
line.add_yaxis(
"商家A",
Faker.values(),
is_smooth=True, #设置平滑
areastyle_opts=opts.AreaStyleOpts(
opacity=0.2, #填充区域透明度
#color="000" #填充区域颜色 单色
color={ #渐变色
'type':'linear',
'x': 0,
'y': 0,
"x2": 0,
"y2": 1,
"colorStops":[{
"offset":0,"color":"red"
},{
'offset':1,"color":'blue'
}]
}
)
)
line.add_yaxis("商家B",Faker.values())
line.set_global_opts(title_opts=opts.TitleOpts(title="折线图演示"))
line.render()
8.饼图
#饼图
##饼图
from pyecharts.faker import Faker
from pyecharts.charts import Pie
from pyecharts import options as opts
pie = Pie()
pie.add("",[list(z) for z in zip(Faker.choose(),Faker.values())])
#[(key1,value1),(key2,value2)]
pie.set_global_opts(title_opts=opts.TitleOpts(title="饼状图"))
pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
pie.render()
9.带涟漪特效散点图
#带涟漪特效散点图
from pyecharts.faker import Faker
from pyecharts.charts import EffectScatter
from pyecharts import options as opts
from pyecharts.globals import SymbolType
effect_scatter = EffectScatter()
effect_scatter.add_xaxis(Faker.choose())
effect_scatter.add_yaxis(
"",
Faker.values(),
symbol=SymbolType.ARROW)
effect_scatter.set_global_opts(title_opts=opts.TitleOpts(title="EffectScatter"))
effect_scatter.render()
10.漏斗图(求转化率)
#漏斗图
from pyecharts.faker import Faker
from pyecharts.charts import Funnel
from pyecharts import options as opts
funnel = Funnel()
funnel.add("转化率",
[list(z) for z in zip(Faker.choose(),Faker.values())],
label_opts=opts.LabelOpts(position="inside"))
funnel.set_global_opts(title_opts=opts.TitleOpts(title="Funnel"))
funnel.render()
11.地理坐标系
#地理坐标系
from pyecharts.faker import Faker
from pyecharts.charts import Geo
from pyecharts import options as opts
geo = Geo()
geo.add_schema(maptype="china")
geo.add("geo",[list(z) for z in zip(Faker.provinces,Faker.values())])
geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo.set_global_opts(
visualmap_opts=opts.VisualMapOpts(),
title_opts=opts.TitleOpts(title="yanshi"),
)
geo.render()
12水球图
#水球图
from pyecharts.faker import Faker
from pyecharts.charts import Liquid
from pyecharts import options as opts
liquid =Liquid()
liquid.add("liquid",[0.3,0.5,0.47])
liquid.set_global_opts(title_opts=opts.TitleOpts(title="shuiqiu"))
liquid.render
以上便是
数据分析的第三部分内容
后续将会持续更新excel,ppt,爬虫,人工智能
等相关内容,敬请关注