本期导读
大家好,我是欧K。
水球图是一种非常适合展现百分比数据的图表,在工作中,我们往往需要定期汇报工作进度,比如完成率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('基本水球图-6.html')
效果:
END
以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、点在看也可以分享到朋友圈让更多人知道哦