1. Excel绘制华夫饼图
其实,用excel绘制华夫饼图的方式有多种,比较复杂的是通过插入柱状图图表后调整柱状图的规范实现;另外一种比较简单的操作则是采取单元格格式
的形式,也是我们今天要介绍的方案。
1.1. 效果预览
1.2. 实现步骤
先选中10*10
共100个单元格区间,然后将单元格的宽度和高度像素设置为相等的值,这里我们设置的值为25像素
接着我们在单元格中从左—>右、下—>上填入数字1-100
为了显示进度值,我们在最下方输入值(这里以66%为例),然后选中10*10的数字区域进行条件格式
设置—>图标集
—>形状
最后再次进入条件格式设置中选中管理规则进行详细规则设定,点击具体规则后可以单击编辑规则或者直接双击具体规则
具体规则如下:
- 类型选择 公式
- 单元格值超过指定值(这里是C13单元格66%*100)则会灰色
- 单元格值不超过指定值则为橙红色
- 同时记得勾选仅显示图标(否则会出现单元格数字显示覆盖图标的情况)
确定规则后,我们可以看到效果如下,继续进行简单的优化就完事了(比如去掉网格、添加其他元素)
2. Python绘制华夫饼图
这里介绍的是一个第三方库pywaffle
,看这库的名称就知道这货是专门用来绘制华夫饼图的。
老规矩,先安装再使用:
pip install pywaffle
接着就是简单的绘图过程:
import matplotlib.pyplot as plt
from pywaffle import Waffle
# 设置中文字体
plt.rcParams["font.family"] = "Microsoft YaHei"
# 进度值
value = 0.66
values = [value,1-value]
fig = plt.figure(
FigureClass=Waffle,
rows=10, # 10行
columns=10, # 10列
values=values, # 值
colors=["#FF4500", "#C0C0C0"], # 配色
vertical=True, # 设置绘图方向从下往上、从左往右
characters='●', # 用实心圆做图标
font_size=45, # 大小为45
title={
'label': '工作完成度', # 设置图表标题
'loc': 'center',
'y':1.05,
'fontdict': {
'fontsize': 20
}
},
)
fig.text( # 设置进度值显示
x=0.3,
y=-0.03,
s=f"{int(100*value)}%",
ha="center",
va="center",
fontsize=25,
color='oran