使用Pyecharts绘制镂空环饼图(附完整代码)

数据概览:

在开始绘图之前,让我们先看一下我们将要可视化的数据:

中药材消费者画像数据

年龄

占比(%

20岁以下

2.2

20-30岁

27.9

31-40岁

56.2

41-50岁

10.9

51岁以上

2.8

可视化实现: 

在这个案例中,我们有五个年龄组别,以及每个年龄组别所占的百分比。这些数据存储在一个列表中,即age_data。接下来,我们将使用pyecharts库来绘制饼形图。

# 导入pyecharts库中的options和Pie类
from pyecharts import options as opts
from pyecharts.charts import Pie

这部分代码是导入 pyecharts 库中的 options 和 Pie 类,用于后续创建饼图和设置图表样式。

# 定义数据,每个年龄组别以及占比
age_data = [("20岁以下", 2.2), ("20-30岁", 27.9), ("31-40岁", 56.2), ("41-50岁", 10.9), ("51岁以上", 2.8)]

在这里,定义了一个包含年龄组别和对应占比的数据列表。

# 创建Pie对象,并通过add()向图表中添加数据
c = (
    Pie()   # 创建饼形图对象
    .add(   # 添加数据
        "", # 图例名称为空
        age_data,   # 数据源
        radius=["40%", "55%"],  # 内径和外径的大小
        label_opts=opts.LabelOpts(  # 标签样式和位置
            position="outside", # 标签放置在外部
            formatter="{a|{a}}{abg|}\n{hr|}\n {b|{b}: }{c}  {per|{d}%}  ", # 富文本标签格式化字符串
            background_color="#eee", # 标签背景色
            border_color="#aaa",    # 边框颜色
            border_width=1,         # 边框宽度
            border_radius=4,        # 边框圆角
            rich={  # 富文本配置
                "a": {"color": "#999", "lineHeight": 22, "align": "center"}, # 饼图外文本颜色和对齐方式
                "abg": {    # 扇形区域背景的配置
                    "backgroundColor": "#e3e3e3",
                    "width": "100%",
                    "align": "right",
                    "height": 22,
                    "borderRadius": [4, 4, 0, 0],
                },
                "hr": {     # 水平分隔线的配置
                    "borderColor": "#aaa",
                    "width": "100%",
                    "borderWidth": 0.5,
                    "height": 0,
                },
                "b": {"fontSize": 16, "lineHeight": 33},     # 饼图外标签文字大小和行高
                "per": {    # 饼图扇形区域的占比文字样式
                    "color": "#eee",
                    "backgroundColor": "#334455",
                    "padding": [2, 4],
                    "borderRadius": 2,
                },
            },
        ),
    )
    # 设置全局参数,包括标题
    .set_global_opts(title_opts=opts.TitleOpts(title="中药材消费者画像数据"))
    # 将图表渲染到HTML文件中
    .render("02.html")
)

这部分代码是核心部分,首先创建了一个 Pie 对象,然后使用 add() 方法向饼图中添加数据。在这个过程中,指定了饼图的内外半径、标签的位置和样式等。接着,使用 set_global_opts() 方法设置了全局的标题参数,最后调用 render() 方法将图表渲染为 HTML 文件。

以下是完整的代码实现: 

# 导入pyecharts库中的options和Pie类
from pyecharts import options as opts
from pyecharts.charts import Pie

# 定义数据,每个年龄组别以及占比
age_data = [("20岁以下", 2.2), ("20-30岁", 27.9), ("31-40岁", 56.2), ("41-50岁", 10.9), ("51岁以上", 2.8)]

# 创建Pie对象,并通过add()向图表中添加数据
c = (
    Pie()   # 创建饼形图对象
    .add(   # 添加数据
        "", # 图例名称为空
        age_data,   # 数据源
        radius=["40%", "55%"],  # 内径和外径的大小
        label_opts=opts.LabelOpts(  # 标签样式和位置
            position="outside", # 标签放置在外部
            formatter="{a|{a}}{abg|}\n{hr|}\n {b|{b}: }{c}  {per|{d}%}  ", # 富文本标签格式化字符串
            background_color="#eee", # 标签背景色
            border_color="#aaa",    # 边框颜色
            border_width=1,         # 边框宽度
            border_radius=4,        # 边框圆角
            rich={  # 富文本配置
                "a": {"color": "#999", "lineHeight": 22, "align": "center"}, # 饼图外文本颜色和对齐方式
                "abg": {    # 扇形区域背景的配置
                    "backgroundColor": "#e3e3e3",
                    "width": "100%",
                    "align": "right",
                    "height": 22,
                    "borderRadius": [4, 4, 0, 0],
                },
                "hr": {     # 水平分隔线的配置
                    "borderColor": "#aaa",
                    "width": "100%",
                    "borderWidth": 0.5,
                    "height": 0,
                },
                "b": {"fontSize": 16, "lineHeight": 33},     # 饼图外标签文字大小和行高
                "per": {    # 饼图扇形区域的占比文字样式
                    "color": "#eee",
                    "backgroundColor": "#334455",
                    "padding": [2, 4],
                    "borderRadius": 2,
                },
            },
        ),
    )
    # 设置全局参数,包括标题
    .set_global_opts(title_opts=opts.TitleOpts(title="中药材消费者画像数据"))
    # 将图表渲染到HTML文件中
    .render("02.html")
)

通过这个例子,我们可以看到,使用Python的pyecharts库绘制饼形图非常简单。只需要准备好数据,创建一个饼形图对象,并设置样式即可。对于初学者来说,可以通过这个例子来快速学习如何使用pyecharts库绘制饼形图。

输出展示:

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值