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()