Pyecharts 水球图

Pyecharts 水球图语法

在 Pyecharts 中,我们可以使用 Liquid 这个模块来绘制一个水球图。水球图是一种适合于展示单个百分比数据的图表。

语法:

lq = Liquid()
lq.add(series_name, data)

说明:

对于水球图来说,它使用的也是 add() 方法。参数 series_name 用于定义系列名,参数 data 用于定义数据部分。

示例 1:Pyecharts 绘制水球图

from pyecharts.charts import Liquid

# 数据
data = [0.8]
# 绘图
lq = Liquid()
lq.add(series_name='票房占比', data=data)

# 渲染
lq.render()

运行生成的 render.html,浏览器效果如下图所示。

pyecharts水球图

分析:

需要注意的是,参数 data 的取值要求是一个一维列表,列表的元素取值是一个 0.0 ~ 1.0 之间的浮点数。接下来我们再来看一个具体的实例,然后看看水球图是怎么使用的。

示例 2:水球图案例

import pandas as pd
from pyecharts.charts import Liquid

# 数据
data = [
    ['蜘蛛侠', 8.9],
    ['蝙蝠侠', 4.1],
    ['钢铁侠', 12.1],
    ['毒液', 8.5],
    ['海王', 11.5]
]
df = pd.DataFrame(data, columns=['电影', '票房'])
# 获取票房总和
total = df['票房'].sum()
# 获取所占百分比
percent = [df.loc[0].at['票房'] / total]

# 绘图
lq = Liquid()
lq.add(series_name='票房占比', data=percent)

# 渲染
lq.render()

运行生成的 render.html,浏览器效果如下图所示。

pyecharts 基本水球图

分析:

在这个例子中,我们是先求出 “蜘蛛侠” 票房占总票房的百分比,然后使用水球图来展示出来。

Pyecharts 水球图样式

在 Pyecharts 中,对于水球图的自定义样式,主要包括 3 个方面:① 水球形状;② 关闭动画;③ 多水球图。

1. 水球形状

在 Pyecharts 中,我们可以使用 add() 方法的 shape 参数来定义水球的形状。对于 shape 参数来说,它常用取值如下表所示。

shape 参数的取值
取值 说明
circle(默认值) 圆形
rect 矩形
triangle 三角形
diamond 钻石
pin 针形
arrow 箭头

示例 3:水球形状

from pyecharts.charts import Liquid

# 数据
data = [0.8]
# 绘图
lq = Liquid()
lq.add(series_name='票房占比', data=data, shape='rect')

# 渲染
lq.render()

运行生成的 render.html,浏览器效果如下图所示。

pyecharts水球图shape='rect'

分析:

shape='rect' 表示将水球图的形状设置成 “矩形” 。当我们使用 shape 的值依次修改为 'triangle'、'diamond'、'pin'、'arrow',此时效果如下图所示。

pyecharts水球图shape='triangle'

pyecharts水球图shape='diamond'

pyecharts水球图shape='pin'

pyecharts水球图shape='arrow'

2. 关闭动画

默认情况下,水球图会有一个波浪动画。在 Pyecharts 中,我们可以使用 add() 方法的 is_animation 参数来关闭动画。is_animation 的取值是一个布尔值,也就是 True 或 False。

示例 4:

from pyecharts.charts import Liquid

# 数据
data = [0.8]
# 绘图
lq = Liquid()
lq.add(series_name='票房占比', data=data, is_animation=False)

# 渲染
lq.render()

运行生成的 render.html,浏览器效果如下图所示。

pyecharts水球图关闭动画

分析:

使用了 is_animation=False 之后,水球图的动画就被关闭了。

3. 多水球图

如果想要实现多水球图,我们需要调用多次 add() 方法,然后使用 center 参数来控制每一个饼状图的位置。多水球图和多饼图的实现方式是一样的,小伙伴们可以对比理解一下。

语法:

obj.add(
    ……
    center=[x轴位置, y轴位置]
)

说明:

参数 center 的取值是一个列表,第 1 个元素用于定义 x 轴位置,第 2 个元素用于定义 y 轴位置。

示例 5:

import pandas as pd
from pyecharts.charts import Liquid

# 数据
data = [
    ['蜘蛛侠', 8.9],
    ['蝙蝠侠', 4.1],
    ['钢铁侠', 12.1],
    ['毒液', 8.5],
    ['海王', 11.5]
]
df = pd.DataFrame(data, columns=['电影', '票房'])
total = df['票房'].sum()
percent1 = [df.loc[0].at['票房'] / total]
percent2 = [df.loc[1].at['票房'] / total]

# 绘图
lq = Liquid()
lq.add(series_name='蜘蛛侠', data=percent1, center=['60%', '50%'])
lq.add(series_name='蝙蝠侠', data=percent2, center=['25%', '50%'])

# 渲染
lq.render()

运行生成的 render.html,浏览器效果如下图所示。

pyecharts多水球图

分析:

对于多水球来说,有多少个水球图,就调用多少次 add() 方法。每一个水球图,我们都需要使用 center 这个参数来控制它的位置。

上一篇: Pyecharts K 线图

下一篇: Pyecharts 日历图

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号