day10 pyecharts的使用
01 柱状图
from pyecharts.charts import Bar #导入柱状图的类
1.创建柱状图对象
bar = Bar()
2.添加数据
1)添加x轴上的选项
bar.add_xaxis(['一季度', '二季度', '三季度', '四季度'])
2)添加x轴上每一个选项对应的数据
bar.add_yaxis('销售额', [280, 219, 199, 320])
bar.add_yaxis('成本', [120, 30, 56, 89])
3.制图(渲染图表)
bar.render('files/柱状图1.html') # 难点在于配置
02 柱状图的配置
1.创建图表对象
bar = Bar()
2.添加数据
bar.add_xaxis(['1季度', '2季度', '3季度', '4季度'])
# 添加数据的时候可以单独针对某种数据进行相关配置
bar.add_yaxis(
'销售额',
[280, 219, 199, 320],
# 设置销售额对应的柱子的颜色
color='DarkKhaki',
# 设置柱子的宽度
bar_width=40
)
bar.add_yaxis('成本', [120, 110, 200, 150])
3.添加配置
1)全局配置
bar.set_global_opts(
# 标题相关配置
title_opts=options.TitleOpts(
title='xxx公司2022年全年销售信息',
title_link='https://www.baidu.com',
subtitle='销售额数据和成本数据',
subtitle_link='https://www.jd.com',
pos_left='450',
text_align='center' # 'left'、'center'、'right'
),
# 设置图例
legend_opts=options.LegendOpts(
is_show=True,
pos_right=0,
item_width=20,
item_height=10
),
# 设置x轴
xaxis_opts=options.AxisOpts(
name='时间'
),
# 设置y轴
yaxis_opts=options.AxisOpts(
name='销售额(万元)/成本(万元)'
)
)
- 系列配置
bar.set_series_opts(
# 设置标签
label_opts=options.LabelOpts(
is_show=False,
position='top',
color='red',
rotate=0
),
# 添加最大值和最小值的标记点
markpoint_opts=options.MarkPointOpts(
data=[
options.MarkPointItem('最小值', 'min'),
options.MarkPointItem('最大值', 'max'),
]
)
)
4.渲染图表
bar.render('files/柱状图2.html')
03 折线图
1.创建折线图对象
line = Line()
2.添加数据
line.add_xaxis(['1季度', '2季度', '3季度', '4季度'])
line.add_yaxis(
'销售额',
[280, 219, 199, 320],
color='blue'
)
line.add_yaxis(
'成本',
[120, 110, 200, 150],
# 设置线的颜色
color='red',
# 是否平滑
is_smooth=True
)
3.配置
line.set_series_opts(
markline_opts=options.MarkLineOpts(
data=[options.MarkLineItem('平均值', 'average')]
)
)
4.渲染
line.render('files/折线图.html')
04 饼图
1.创建饼图对象
pie = Pie()
2.添加数据
data = [('Apple', 512), ('HuaWei', 600), ('XiaoMi', 320), ('SanXing', 80), ('Oppo', 120), ('ViVo', 210)]
pie.add(
'销量',
data,
# 设置内半径和外半径大小
radius=[70, 200],
# 让外半径大小根据数据的占比自动调整
rosetype='radius'
)
3.添加配置
pie.set_series_opts(
# 设置数据的显示格式
label_opts=options.LabelOpts(
# {b} - 数据名称 {d} - 一个数据在整个数据中百分比比值
formatter='{b}:{d}%'
)
)
4.渲染
pie.render('files/饼图.html')
05 中国地图
1.创建地图对象
map1 = Map()
2.添加数据
data = [('四川省', 65627892), ('重庆市', 56738290), ('吉林省', 20192873)]
map1.add(
'人口数量',
data,
maptype='china',
# 限制缩放范围
min_scale_limit=0.7,
max_scale_limit=2.5,
# 默认的缩放比例
zoom=1.5
)
3.配置地图
map1.set_global_opts(
# 在地图上根据数据的大小涂色
visualmap_opts=options.VisualMapOpts(
is_show=True,
min_=10000000,
max_=70000000,
is_piecewise=True
)
)
4.渲染地图
map1.render('files/地图.html')
06 世界地图
from pyecharts.charts import Map
from pyecharts import options
# 1.创建地图对象
map1 = Map()
map1.add(
'人均GDP',
[('China', 19280), ('Russia', 18252), ('Canada', 15006), ('Brazil', 6500),
('Australia', 14000)
],
maptype='world',
min_scale_limit=0.5,
max_scale_limit=3,
zoom=1
)
map1.set_series_opts(
label_opts=options.LabelOpts(
is_show=False
)
)
map1.set_global_opts(
legend_opts=options.LegendOpts(
is_show=False
),
title_opts=options.TitleOpts(
title='世界各国人均GDP',
pos_left='400'
),
visualmap_opts=options.VisualMapOpts(
is_show=True,
min_=5000,
max_=20000,
is_piecewise=True
)
)
# 4.渲染地图
map1.render('files/世界地图.html')
07 省份地图
from pyecharts.charts import Map
from pyecharts import options
map1 = Map()
map1.add(
'平均薪资',
[('成都市', 7000), ('重庆市', 6500), ('广安市', 5000), ('甘孜藏族自治州', 2000),('广元市', 4500)],
maptype='四川',
min_scale_limit=0.5,
max_scale_limit=3,
zoom=1
)
map1.set_global_opts(
legend_opts=options.LegendOpts(
is_show=False
),
title_opts=options.TitleOpts(
title='四川省各市平均薪资',
pos_left='360'
),
visualmap_opts=options.VisualMapOpts(
is_show=True,
min_=1000,
max_=10000,
is_piecewise=True
)
)
map1.render('files/省份地图.html')
08 词云
# 1. 创建词云对象
wc = WordCloud()
# 2. 添加数据
wc.add(
'',
[('王者荣耀', 9893), ('英雄联盟', 7821), ('原神', 2983), ('开心消消乐', 12099), ('保卫萝卜', 892),
('CSGO', 1290), ('永劫无间', 290), ('守望先锋', 120), ('和平精英', 15032), ('qq飞车', 782), ('第五人格', 403),
('穿越火线', 3909), ('诛仙', 109), ('红警', 99)],
# cardioid(心脏线)、diamond(钻石)、triangle(三角形)、triangle-forward、pentagon(五边形)、star(星形)
shape='triangle',
width='200',
height='200'
)
# 4.渲染数据
wc.render('files/词云.html')