Python使用matplotlib+pywaffle绘制华夫饼图


pip安装参考 PyPI, pywaffle的 文档参考

import matplotlib.pyplot as plt
from pywaffle import Waffle

基础华夫饼图

plt.figure(
    FigureClass=Waffle,
    rows=5,
    columns=10,
    values=[48, 46, 6]
)
plt.show()

在这里插入图片描述

带图例标签的华夫饼图

values参数可以使用字典参数,字典的值会作为标签和图例。

plt.figure(
    FigureClass=Waffle,
    rows=5,
    columns=10,
    values={'Cat1': 20, 'Cat2': 12, 'Cat3': 8},
    # 设置图例的位置
    legend={'loc': 'upper left', 'bbox_to_anchor': (1, 1)},
    dpi=100
)
plt.show()

在这里插入图片描述

自定义icons(华夫饼中的图例)

icons支持fontawesome中的图标,同时允许传递列表作为区分!

data = {'Democratic': 48, 'Republican': 46, 'Libertarian': 3}
plt.figure(
    FigureClass=Waffle, 
    rows=5, 
    values=data, 
    colors=("#232066", "#983D3D", "#DCB732"),
    legend={'loc': 'upper left', 'bbox_to_anchor': (1, 1)},
    icons='child', icon_size=14, 
    icon_legend=True,
    dpi=300,
)
plt.show()

在这里插入图片描述

plt.figure(
    FigureClass=Waffle,
    rows=5,
    values=[48, 46, 3],
    # 十六进制的颜色
    colors=["#FFA500", "#4384FF", "#C0C0C0"],
    # 指定晴天,阵雨,雪的图标
    icons=['sun', 'cloud-showers-heavy', 'snowflake'],
    font_size=12,
    icon_style='solid',
    icon_legend=True,
    legend={
        'labels': ['Sun', 'Shower', 'Snow'], 
        'loc': 'upper left', 
        'bbox_to_anchor': (1, 1)
    },
    dpi=120
)
plt.show()

在这里插入图片描述

数据的自动适应、图例标签自定义及标题制作

data = {'cat1': 48, 'cat2': 46, 'cat3': 3}
total = sum(data.values())
plt.figure(
    FigureClass=Waffle,
    rows = 5,   # 列数自动调整
    values = data,
    # 设置title
    title = {
        'label': "waffle example",
        'loc': 'left',
        'fontdict':{
            'fontsize': 16,
        }
    },
    labels = ['{} {:.1f}%'.format(k, (v/total*100)) for k, v in data.items()],
    # 设置标签图例的样式
    legend = {
        'loc': 'lower left',
        'bbox_to_anchor': (0, -0.4),
        'ncol': len(data),
        'framealpha': 0,
        'fontsize': 12
    },
    dpi=120
)
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值