当前位置:   article > 正文

可视化 | Python精美动态水球图_python漂亮水球显示达成率

python漂亮水球显示达成率


大家好,我是欧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
  • 3
  • 4
  • 5

1.2 导入模块

from pyecharts import options as opts
from pyecharts.charts import Grid, Liquid
from pyecharts.commons.utils import JsCode
  • 1
  • 2
  • 3

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')
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

效果:
在这里插入图片描述

水球外形,有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')
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

效果:
在这里插入图片描述

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')
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

效果:
在这里插入图片描述

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')
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

效果:
在这里插入图片描述

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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

效果:
在这里插入图片描述


以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享让更多人知道哦

推荐阅读

基础 | Python函数一文详解
技巧 | 20个Pycharm最实用最高效的快捷键(动态展示)
技巧 | 5000字超全解析Python三种格式化输出方式【% / format / f-string】
爬虫 | Python送你王者荣耀官网全套皮肤
爬虫 | 用python构建自己的IP代理池,再也不担心IP不够用啦!
可视化 | Python制作最炫3D可视化地图
可视化 | 动起来的中国大学排名,看看你的母校在哪里

微信公众号 “Python当打之年” ,每天都有python编程技巧推送,希望大家可以喜欢
在这里插入图片描述

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号