文章目录
前言
水球图是一种非常适合展现百分比数据的图表,在工作中,我们往往需要定期汇报工作进度,比如完成率60%,业绩完成80%等等,使用水球图可以达到很不错的数据展示效果。本期给大家分享如何 使用python绘制各种精美的动态水球图 ,希望对大家有所帮助,如有疑问或者需要改进的地方可以联系小编。


1. 准备工作
1.1 pyechars安装
这里有两种安装方法:
# 方法1
pip install pyecharts
# 方法2
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pyecharts
1.2 导入模块
from pyecharts import options as opts
from pyecharts.charts import Grid, Liquid
from pyecharts.commons.utils import JsCode
2. 绘制水球图
2.1 基本水球图
c1 = (
Liquid()
.add('lq',
\[0.35\],
center\=\['30%', '50%'\],
is\_outline\_show=False,
shape='circle'
)
.set\_global\_opts(title\_opts=opts.TitleOpts(title='基本水球图-1',pos\_top='30',pos\_left='10%'))
.render('基本水球图-1.html')
)
效果:

水球外形,有circle, rect, roundRect, triangle, diamond, pin, arrow 可选,通过shape参数选取,默认值为circle。
2.2 增加边框,改变形状
c2 = (
Liquid()
.add('lq',
\[0.35\],
center\=\['30%', '50%'\],
is\_outline\_show=True,
shape='roundRect'
)
.set\_global\_opts(title\_opts=opts.TitleOpts(title='基本水球图-2',pos\_top='30',pos\_left='10%'))
.render('基本水球图-2.html')
)
效果:

is_outline_show参数可设置是否显示外边框。
2.3 多波浪
c3 = (
Liquid()
.add('lq',
\[0.75,0.5,0.2\],
center\=\['30%', '50%'\],
is\_outline\_show=True,
shape='roundRect'
)
.set\_global\_opts(title\_opts=opts.TitleOpts(title='基本水球图-3',pos\_top='30',pos\_left='10%'))
.render('基本水球图-3.html')
)
效果:

2.4 增加标注,改变字体大小,改变填充颜色
c4 = (
Liquid()
.add('lq',
\[0.6\],
center=\['30%', '50%'\],
is\_outline\_show=True,
shape='diamond',
color=\['#008B8B'\],
label\_opts = opts.LabelOpts(font\_size=30, formatter=JsCode(
"""function (param) {
return ('完成度:'+Math.floor(param.value \* 10000) / 100) + '%';
}"""
),position='inside'),
)
.set\_global\_opts(title\_opts=opts.TitleOpts(title='基本水球图-4',pos\_top='30',pos\_left='10%'))
.render('基本水球图-4.html')
)
效果:

2.5 多图并列显示
l1 = (
Liquid()
.add('lq',
\[0.2\],
shape='circle',
center=\['20%', '50%'\],
label\_opts=opts.LabelOpts(
font\_size=20,
formatter=JsCode(
"""function (param) {
return ('完成度:'+Math.floor(param.value \* 10000) / 100) + '%';
}"""
),
position='inside',
),
)
)
l2 = (
Liquid()
.add('lq',
\[0.5,0.3\],
shape='diamond',
center=\['50%', '50%'\],
label\_opts=opts.LabelOpts(
font\_size=20,
formatter=JsCode(
"""function (param) {
return ('完成度:'+Math.floor(param.value \* 10000) / 100) + '%';
}"""
),
position='inside',
),
)
)
l3= Liquid().add(
'lq',
\[0.85, 0.5, 0.2\],
shape='roundRect',
center=\['80%', '50%'\],
label\_opts=opts.LabelOpts(
font\_size=20,
formatter=JsCode(
"""function (param) {
return ('完成度:'+Math.floor(param.value \* 10000) / 100) + '%';
}"""
),
position='inside',
),
)
grid = Grid().add(l1, grid\_opts=opts.GridOpts()).add(l2, grid\_opts=opts.GridOpts()).add(l3, grid\_opts=opts.GridOpts())
grid.render('基本水球图-5.html')
效果:

学习资源推荐
除了上述分享,如果你也喜欢编程,想通过学习Python获取更高薪资,这里给大家分享一份Python学习资料。
这里给大家展示一下我进的最近接单的截图

😝朋友们如果有需要的话,可以 V扫描下方二维码联系领取,也可以内推兼职群哦~
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
### 1.Python学习路线


2.Python基础学习
01.开发工具

02.学习笔记

03.学习视频

3.Python小白必备手册

4.数据分析全套资源

5.Python面试集锦
01.面试资料


02.简历模板


5万+

被折叠的 条评论
为什么被折叠?



