python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python Matplotlib饼图

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

作者: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饼图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文