defax_set_title(s):
ax.set_title(label=f'No.{i+1}\n'+s, #标题的文本内容
loc='right', #标题的位置
family='Arial', #标题文本的字体类型
size=13, #字体大小
)#配置字体,显示中文
mpl.rcParams['font.sans-serif'] = ['SimHei']#配置坐标轴刻度值模式,显示负号
mpl.rcParams['axes.unicode_minus'] =False#定义数据
cnt_pct = [0.35, 0.15, 0.20, 0.30]
cs= ['red', 'orange', 'yellow', 'green']
labs= [f'{e.upper()} 难度水平' for e in 'abcd']
explode= (0.1, 0.1, 0.1, 0.1)#初始化图表区
fig, axes = plt.subplots(nrows=4,
ncols=5,
figsize=(16, 12),
facecolor='cornsilk')
axes=axes.ravel()#选择子区 1
i =0
ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
)## 设置标题
ax_set_title(s='x')#选择子区 2
i = 1ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
)## 设置标题
ax_set_title(s='explode')#选择子区 3
i = 2ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
)## 设置标题
ax_set_title(s='labels')#选择子区 4
i = 3ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
)## 设置标题
ax_set_title(s='colors')## 设置标题
ax_set_title(s='labels')#选择子区 5
i = 4ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
)## 设置标题
ax_set_title(s='autopct')#选择子区 6
i = 5ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
pctdistance=0.8, #锲形块数据标注的径向距离
)## 设置标题
ax_set_title(s='pctdistance')#选择子区 7
i = 6ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
pctdistance=0.8, #锲形块数据标注的径向距离
shadow=True,
)## 设置标题
ax_set_title(s='shadow')#选择子区 8
i = 7ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
pctdistance=0.8, #锲形块数据标注的径向距离
shadow=True,
labeldistance=1.02, #锲形块标签的径向距离
)## 设置标题
ax_set_title(s='labeldistance')#选择子区 9
i = 8ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
pctdistance=0.5, #锲形块数据标注的径向距离
shadow=True,
labeldistance=0.9, #锲形块标签的径向距离
startangle=90, #饼图的初始摆放角度
)## 设置标题
ax_set_title(s='startangle')#选择子区 10
i = 9ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
pctdistance=0.5, #锲形块数据标注的径向距离
shadow=True,
labeldistance=0.9, #锲形块标签的径向距离
startangle=90, #饼图的初始摆放角度
radius=1.2, #饼图半径
)## 设置标题
ax_set_title(s='radius')#选择子区 11
i = 10ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
pctdistance=0.5, #锲形块数据标注的径向距离
shadow=True,
labeldistance=0.9, #锲形块标签的径向距离
startangle=90, #饼图的初始摆放角度
radius=1.2, #饼图半径
counterclock=False, #是否让饼图按逆时针顺序呈现
)## 设置标题
ax_set_title(s='counterclock')#选择子区 12
i = 11ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
pctdistance=0.5, #锲形块数据标注的径向距离
shadow=True,
labeldistance=0.9, #锲形块标签的径向距离
startangle=90, #饼图的初始摆放角度
radius=1.2, #饼图半径
counterclock=False, #是否让饼图按逆时针顺序呈现
#锲形块边界属性字典
wedgeprops={'edgecolor': 'silver',}
)## 设置标题
ax_set_title(s='edgecolor')#选择子区 13
i = 12ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
pctdistance=0.5, #锲形块数据标注的径向距离
shadow=True,
labeldistance=0.9, #锲形块标签的径向距离
startangle=90, #饼图的初始摆放角度
radius=1.2, #饼图半径
counterclock=False, #是否让饼图按逆时针顺序呈现
#锲形块边界属性字典
wedgeprops={'edgecolor': 'silver','linewidth': 3,
}
)## 设置标题
ax_set_title(s='linewidth')#选择子区 14
i = 13ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
pctdistance=0.5, #锲形块数据标注的径向距离
shadow=True,
labeldistance=0.9, #锲形块标签的径向距离
startangle=90, #饼图的初始摆放角度
radius=1.2, #饼图半径
counterclock=False, #是否让饼图按逆时针顺序呈现
#锲形块边界属性字典
wedgeprops={'edgecolor': 'silver','linewidth': 3,'linestyle': ':'}
)## 设置标题
ax_set_title(s='linestyle')#选择子区 15
i = 14ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
pctdistance=0.5, #锲形块数据标注的径向距离
shadow=True,
labeldistance=0.9, #锲形块标签的径向距离
startangle=90, #饼图的初始摆放角度
radius=1.2, #饼图半径
counterclock=False, #是否让饼图按逆时针顺序呈现
#锲形块边界属性字典
wedgeprops={'edgecolor': 'silver','linewidth': 3,'linestyle': ':'},#锲形块标签文本和数据标注文本的字体属性
textprops=dict(color='blue') #字体颜色
)## 设置标题
ax_set_title(s='fontcolor')#选择子区 16
i = 15ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
pctdistance=0.5, #锲形块数据标注的径向距离
shadow=True,
labeldistance=0.9, #锲形块标签的径向距离
startangle=90, #饼图的初始摆放角度
radius=1.2, #饼图半径
counterclock=False, #是否让饼图按逆时针顺序呈现
#锲形块边界属性字典
wedgeprops={'edgecolor': 'silver','linewidth': 1,'linestyle': '-'},#锲形块标签文本和数据标注文本的字体属性
textprops=dict(color='k', #字体颜色
fontsize=14,
)
)## 设置标题
ax_set_title(s='fontsize')#选择子区 17
i = 16ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
pctdistance=0.5, #锲形块数据标注的径向距离
shadow=True,
labeldistance=0.9, #锲形块标签的径向距离
startangle=90, #饼图的初始摆放角度
radius=1.2, #饼图半径
counterclock=False, #是否让饼图按逆时针顺序呈现
#锲形块边界属性字典
wedgeprops={'edgecolor': 'silver','linewidth': 1,'linestyle': '-'},#锲形块标签文本和数据标注文本的字体属性
textprops=dict(color='k', #字体颜色
fontsize=12,
),
rotatelabels=True #是否旋转锲形块的标签与其角度对应
)## 设置标题
ax_set_title(s='rotatelabels')#选择子区 18
i = 17ax=axes[i]## 设置子区背景色
ax.set_facecolor('cornsilk')#选择子区 19
i = 18ax=axes[i]## 设置子区背景色
ax.set_facecolor('cornsilk')#选择子区 20
i = 19ax=axes[i]## 绘制饼图
ax.pie(x=cnt_pct, #产生锲形块的数据
explode=explode, #锲形块分离距离序列
labels=labs, #锲形块标签列表
colors=cs, #锲形块的颜色列表
autopct='%3.1f%%', #锲形块的数据标注格式 (88.8%)
pctdistance=0.5, #锲形块数据标注的径向距离
shadow=True,
labeldistance=0.9, #锲形块标签的径向距离
startangle=90, #饼图的初始摆放角度
radius=1.2, #饼图半径
counterclock=False, #是否让饼图按逆时针顺序呈现
#锲形块边界属性字典
wedgeprops={'edgecolor': 'silver','linewidth': 1,'linestyle': '-'},#锲形块标签文本和数据标注文本的字体属性
textprops=dict(color='k', #字体颜色
fontsize=12,
),
frame=True, #是否绘制框架
rotatelabels=False #是否旋转锲形块的标签与其角度对应
)## 设置标题
ax_set_title(s='frame')## 设置子区背景色
ax.set_facecolor('cornsilk')#设置整个子区的布局
fig.subplots_adjust(left=0,
bottom=0,
right=0.9,
top=1,
wspace=0.2, #子区间空白区域的宽度的归一化值
hspace=0.3); #子区间空白区域的高度的归一化值
plt.savefig('pie.jpg')