python
主页 > 脚本 > python >

Python使用Pyecharts绘制精美饼状图的代码

2025-07-24 | 佚名 | 点击:

Pyecharts 简介

Pyecharts 是一个基于 ECharts 的 Python 数据可视化库,它能够帮助用户轻松创建各种交互式图表。作为 ECharts 的 Python 接口,Pyecharts 继承了 ECharts 强大的可视化能力,同时提供了 Python 友好的 API 设计,使得数据科学家和分析师能够快速构建专业级的数据可视化作品。

Pyecharts 的核心优势在于:

饼状图是数据可视化中展示比例关系的经典图表。本文将基于 Pyecharts 展示多种饼状图的绘制方法,包括基础饼图、南丁格尔玫瑰图等高级形式,并提供完整的代码示例和效果展示。

基础饼状图

展示高中同学职业分布的比例关系:

1

2

3

4

5

6

7

8

9

10

11

12

13

from pyecharts import options as opts

from pyecharts.charts import Pie

 

categories = ['程序员','教师','医生','护士','警察','老板','律师','翻译','运动员']

values = [18, 5, 3, 4, 8, 2, 2, 5, 1]

 

pie = (

    Pie()

    .add('高中同学职业占比', list(zip(categories, values)))

    .set_global_opts(title_opts=opts.TitleOpts(title="职业分布"))

    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))

)

pie.render_notebook()

效果特点:

调整图例位置

当图例项较多时,优化图例位置可提升可读性:

1

2

3

4

5

6

7

8

pie = (

    Pie()

    .add('职业占比', list(zip(categories, values)))

    .set_global_opts(

        title_opts=opts.TitleOpts(title="优化图例位置"),

        legend_opts=opts.LegendOpts(pos_left="25%")  # 图例左移

    )

)

关键参数:

自定义颜色方案

为不同职业分配特定颜色:

1

2

3

4

5

6

7

8

custom_colors = ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728",

                "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22"]

 

pie = (

    Pie()

    .add('职业占比', list(zip(categories, values)))

    .set_colors(custom_colors)  # 应用自定义颜色

)

南丁格尔玫瑰图

用半径长度反映数值大小的玫瑰图:

1

2

3

4

5

6

7

8

9

10

11

pie = (

    Pie()

    .add(

        series_name='职业占比',

        data_pair=list(zip(categories, values)),

        rosetype="radius",  # 半径模式

        radius="85%",       # 图表大小

        label_opts=opts.LabelOpts(is_show=False)

    )

    .set_global_opts(legend_opts=opts.LegendOpts(is_show=False))

)

玫瑰图模式说明:

滚动图例

当分类过多时使用滚动图例:

1

2

3

4

5

6

7

8

9

10

11

pie = (

    Pie()

    .add('职业占比', list(zip(categories, values)))

    .set_global_opts(

        legend_opts=opts.LegendOpts(

            type_="scroll",      # 滚动模式

            pos_left="80%",      # 右侧放置

            orient="vertical"    # 垂直方向

        )

    )

)

双玫瑰图对比

在同一画布展示两种玫瑰图类型:

1

2

3

4

5

6

7

8

9

10

11

pie = (

    Pie()

    .add("", list(zip(categories, values)),

         radius=["30%", "75%"],

         center=["25%", "50%"],  # 左侧图表

         rosetype="radius")      # 半径模式

    .add("", list(zip(categories, values)),

         radius=["30%", "75%"],

         center=["75%", "50%"],  # 右侧图表

         rosetype="area")        # 面积模式

)

对比效果:

给读者的学习建议

1. 学习路径规划

对于 Pyecharts 的学习,建议按照以下路径循序渐进:

初级阶段(1-2周):

中级阶段(2-4周):

高级阶段(1个月以上):

原文链接:
相关文章
最新更新