Python+Matplotlib绘制高亮显示饼图的示例代码

 更新时间:2023年06月08日 11:12:44   作者:SpikeKing  
饼图 (Pie Chart) 是一种圆形统计图,被分割成片用于表示数值间的比例关系,本文为大家介绍了Matplotlib绘制高亮显示的饼图的函数源码,需要的可以参考一下

饼图 (Pie Chart) 是一种圆形统计图,被分割成片用于表示数值间的比例关系。每个切片的弧长以及相应的中心角和面积与其表示的量成正比。饼图适合用于展示构成、占比、份额等数据。

示例如下:

源码如下:

其中,高亮显示使用 plt.pie() 函数的 explode 参数,默认是全0列表,当设置超过0时,如0.05,则当前位置是高亮显示。

def draw_pie_chart(
    val_list, label_list, highlight_idx=-1,
    title="", xlabel="", ylabel="", figsize=(8, 8), font_scale=1.2,
    is_show=False, save_name="",
    **plot_kwargs,
):
    """
    绘制饼图

    :param val_list: 待处理数据
    :param label_list: 待处理数据的标签,
    :param highlight_idx: 高亮显示区域
    :param title: 图表标题
    :param xlabel: X 轴标签
    :param ylabel: Y 轴标签
    :param figsize: 图像尺寸
    :param font_scale: 字体缩放尺寸
    :param is_show: 是否显示
    :param save_name:  是否存储图像
    :param plot_kwargs:  其余参数
    :return:
    """

    assert len(val_list) == len(label_list)
    assert highlight_idx < len(val_list)

    sns.set(font_scale=font_scale)
    plt.figure(figsize=figsize)
    explode_list = [0.0 for _ in range(len(val_list))]

    # 高亮显示区域
    if highlight_idx >= 0:
        highlight_idx = min(highlight_idx, len(explode_list) - 1)
        explode_list[highlight_idx] = 0.05

    # 绘制饼图
    plt.pie(
        x=val_list,
        labels=label_list,
        autopct='%1.2f%%',
        colors=sns.color_palette('Set2'),
        # Add space around each slice
        explode=explode_list,
        ** plot_kwargs,
    )

    plt.title(title)
    plt.xlabel(xlabel)
    plt.ylabel(ylabel)

    if save_name:
        # transparent=True
        assert save_name.endswith("png") or save_name.endswith("jpg")
        plt.savefig(save_name, bbox_inches='tight', format='png')
    if is_show:
        plt.show()

    return plt.gcf()

def main():
    data_list = [11, 11, 7, 26]
    label_list = ["MSA Update", "Model Diversity", "MSA Ranking", "Unified Prediction"]
    draw_pie_chart(data_list, label_list, highlight_idx=0, is_show=True, save_name="xxx.png")

到此这篇关于Python+Matplotlib绘制高亮显示饼图的示例代码的文章就介绍到这了,更多相关Python Matplotlib饼图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python 利用已有Ner模型进行数据清洗合并代码

    python 利用已有Ner模型进行数据清洗合并代码

    今天小编就为大家分享一篇python 利用已有Ner模型进行数据清洗合并代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Django admin显示json字段方法详解

    Django admin显示json字段方法详解

    这篇文章主要为大家介绍了Django admin显示json字段方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 如何利用Python让Excel快速按条件筛选数据

    如何利用Python让Excel快速按条件筛选数据

    平时总是要对Excel进行操作,整理了一下平时经常会用到的操作,下面这篇文章主要给大家介绍了关于如何利用Python让Excel快速按条件筛选数据的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Python数据结构与算法之二叉树结构定义与遍历方法详解

    Python数据结构与算法之二叉树结构定义与遍历方法详解

    这篇文章主要介绍了Python数据结构与算法之二叉树结构定义与遍历方法,结合实例形式详细分析了Python实现二叉树结构的定义、遍历方法及相关注意事项,需要的朋友可以参考下
    2017-12-12
  • python编程线性回归代码示例

    python编程线性回归代码示例

    这篇文章主要介绍了python编程线性回归代码示例,具有一定借鉴价值,需要的朋友可以了解下。
    2017-12-12
  • 详解Django配置JWT认证方式

    详解Django配置JWT认证方式

    这篇文章主要介绍了Django 配置JWT认证方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Python高级特性之切片迭代列表生成式及生成器详解

    Python高级特性之切片迭代列表生成式及生成器详解

    这篇文章主要为大家介绍了Python高级特性之切片迭代列表生成式及生成器详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2021-10-10
  • python 递归相关知识总结

    python 递归相关知识总结

    这篇文章主要介绍了python 递归相关知识总结,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • openCV中值滤波和均值滤波的代码实现

    openCV中值滤波和均值滤波的代码实现

    在我们生活中的有很多时候都可以用到滤波,例如美颜的磨皮功能,本文就详细的介绍了openCV中值滤波和均值滤波的代码实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Numpy随机抽样的实现

    Numpy随机抽样的实现

    本文主要介绍了Numpy随机抽样的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03

最新评论