首先安装pywaffle库
pip install pywaffle
安装完成后调用库
import matplotlib.pyplot as plt
from pywaffle import Waffle
开始画图
plt.rcParams['font.sans-serif']=['SimHei'] #图例显示中文,不然含中文显示不出来
plt.figure(
FigureClass=Waffle,
rows = 8, # 华夫饼图表的行数
#columns = 10, 华夫饼图表的列数
values=[14, 18, 19, 26, 23], #输入的值
colors=["#FFA500", "#4384FF", "#232066", "#983D3D", "#DCB732"], #指定颜色
icons=['layer-group', 'hospital-alt', 'hospital-user','globe','chalkboard-teacher'], #指定图标的样式
icon_size=20, #图表尺寸
icon_legend=True, #在图例中使用图标但不使用颜色条
legend={
'labels': ['第二课堂', '训练营', '培训营','网络平台','直播'], #定义图例名称
'loc': 'upper left',
'bbox_to_anchor': (1, 1)
}
)
plt.show() #画图
完成画图
接下来我们聊聊改函数的全部参数
values(list|dict|pandas.Series) --每个类别的数值 如果是字典,则键将用作标签
rows(int) – 华夫饼图表的行数(要画的图有几行)
columns (int) --华夫饼图表的列数 (要画的图有几列)
如果传递行或列,则另一个参数将通过值的绝对值自动计算。
如果同时传递行和列,则块编号是固定的,块编号是根据缩放值计算的。
colors (list[str]|tuple[str], optional) --每个类别的颜色列表。其长度应与值相同(输入参数定义类别颜色)
labels(list[str]|tuple[str], optional) --每个类别的名称,如果值是字典,则此参数将替换为值的键
legend(dict, optional) --在字典中的参数
查看 https://matplotlib.org/api/_as_gen/matplotlib.pyplot.legend.html 中的完整参数列表
interval_ratio_x (float, optional) --块之间的水平距离与块宽度的比率。[默认 0.2]
interval_ratio_y (float, optional) --块之间的垂直距离与块高度的比率。[默认 0.2]
block_aspect_ratio (float, optional) --块的宽度与高度之比。[默认值 1]
camp_name(optional) --默认颜色的色彩映射表的名称(如果未指定颜色)
查看 https://matplotlib.org/examples/color/colormaps_reference.html 中的完整列表
title (dict, optional) --标题
查看 https://matplotlib.org/api/_as_gen/matplotlib.pyplot.title.html 中的完整参数列表
characters--字符串中的字符或每个类别的字符列表。[默认无]
font_size --字体真棒图标的字体大小。
默认大小不是固定的,取决于块大小。
“xx-small”、“x-small”、“small”、“medium”、“large”、“x-large”、“xx-large”的相对值或绝对字体大小
font_file --自定义字体文件的路径
icons (str|list[str]|tuple[str], optional) -- 图标(自定义图标样式)
如果是字符串,则所有类别都使用相同的图标;
如果它是图标的列表或元组,则长度应与值相同。
在 Icons | Font Awesome 上查看Font Awesome的完整列表
[默认无]
icon_style (str|list[str]|tuple[str], optional)--要使用的图标的样式
如果它是一个字符串,它将在给定样式中搜索图标。
如果它是列表或元组,则长度应与值相同,并且表示每个图标的样式。
[默认的“固体”]
有关详细信息,请访问 https://fontawesome.com/cheatsheet。
icon_size (int|str, optional)--字体真棒图标的字体大小。
默认大小不是固定的,取决于块大小。
“xx-small”、“x-small”、“small”、“medium”、“large”、“x-large”、“xx-large”的相对值或字体大小的绝对值。
icon_legend (bool, optional) --是否在图例中使用图标但不使用颜色条。[默认false],不使用
plot_anchor (str, optional) --子图的对齐方法。{'C', 'SW', 'S', 'SE', 'E', 'NE', 'N', 'NW', 'W'}
在 https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.set_anchor.html 中查看详细信息
[默认“W”]
plots (dict, optional)--绘图
Waffle 类在字典中子情节的位置和参数,格式如 {pos: {subplot_args: values, }, }。
Pos 可以是三个整数的元组,其中第一个数字是行数,第二个数字是列数,第三个数字是子图的索引。
Pos 也可以是 int 或字符串类型的 3 位数字。例如,它接受 235 或“235”代表具有 J 行和 K 列的网格上的第 I 个图。请注意,所有整数必须小于 10,此表单才能正常工作。
子图的参数与 Waffle 类参数相同,但不包括图本身。
如果未分配子图的任何参数,它将在 Waffle 类中使用相同的参数作为默认值。
starting_location (str, optional)--更改绘制块的起始位置。{'NW', 'SW', 'NE', 'SE'}
当它是“NW”时,这意味着情节从左上角开始;“SW”表示情节从左下角开始;“NE”表示情节从右上角开始;“SE”表示绘图从右下角开始。
[默认“SW”]
rounding_rule (str, optional)--调整值以适合图表大小时应用的舍入规则。{'nearest', 'floor', 'ceil'}
当它是“最近”时,它是“四舍五入到最近,与偶数联系”舍入模式;
当它为“地板”时,它将舍入到间隔的两个端点中的较小值;
当它是“ceil”时,它会舍入到间隔的两个端点中的较大一个。
[默认的“最近”]
tight (bool|dict, optional) --设置在绘制时是否以及如何调用.tight_layout。
None
figure.autolayout
block_arranging_style (string, optional)--设置如何排列块。{'normal', 'snake', 'new-line'}
rows
columns
vertical=False
rows
vertical=True
rows