def title_table(ax):
'''為圖表添加標(biāo)題和表格'''
ax.set_title(label=f'No.{i+1}',
loc='center',
pad=None,
fontdict={'color': 'b'}
)
ax.table(loc='upper right', # 表格在圖表區(qū)的位置
colLabels=[f'{i+2} args'], # 表格每列的列名稱(chēng)
colColours=['g'], # 表格每列列名稱(chēng)所在單元格的填充顏色
colLoc='left', # 表格中每列列名稱(chēng)的對(duì)齊位置
colWidths=[0.15], # 表格每列的寬度
cellText=args, # 表格中的數(shù)值, 每行數(shù)據(jù)的列表的列表
cellColours=[['cornsilk']]*len(args), # 表格中數(shù)據(jù)所在單元格的填充顏色
cellLoc='left', # 表格中數(shù)據(jù)的對(duì)齊位置
fontsize=8)
# 配置字體,顯示中文
mpl.rcParams['font.sans-serif'] = ['SimHei']
# 配置坐標(biāo)軸刻度值模式,顯示負(fù)號(hào)
mpl.rcParams['axes.unicode_minus'] = True
# 定義數(shù)據(jù)
x = [1, 2, 3, 4, 5]
y = [6, 10, 4, 5, 1]
labels = list('ABCDE')
fig, axes = plt.subplots(nrows=3,
ncols=3,
sharex=True,
sharey=True,
figsize=(18, 20),
facecolor='cornsilk')
axes = axes.ravel()
i = 0
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x, # 柱體在 x 軸上的坐標(biāo)位置
height=y, # 柱體的高度
)
args = [[e] for e in ['x', 'height']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 1
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x, # 柱體在 x 軸上的坐標(biāo)位置
height=y, # 柱體的高度
align='edge', # x 軸上的坐標(biāo)與柱體對(duì)其的位置
)
args = [[e] for e in ['x', 'height', 'align']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 2
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x, # 柱體在 x 軸上的坐標(biāo)位置
height=y, # 柱體的高度
align='edge', # x 軸上的坐標(biāo)與柱體對(duì)其的位置
color='c', # 柱體的填充顏色
)
args = [[e] for e in ['x', 'height', 'align', 'color']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 3
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x, # 柱體在 x 軸上的坐標(biāo)位置
height=y, # 柱體的高度
align='edge', # x 軸上的坐標(biāo)與柱體對(duì)齊的位置
color='cyan', # 柱體的填充顏色
tick_label=labels, # 每個(gè)柱體的標(biāo)簽名稱(chēng)
)
args = [[e] for e in ['x', 'height', 'align', 'color', 'tick_label']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 4
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x, # 柱體在 x 軸上的坐標(biāo)位置
height=y, # 柱體的高度
align='edge', # x 軸上的坐標(biāo)與柱體對(duì)其的位置
color='blue', # 柱體的填充顏色
tick_label=labels, # 每個(gè)柱體的標(biāo)簽名稱(chēng)
alpha=0.6 # 柱體填充顏色的透明度
)
args = [[e] for e in ['x', 'height', 'align', 'color', 'tick_label', 'alpha']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 5
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x, # 柱體在 x 軸上的坐標(biāo)位置
height=y, # 柱體的高度
align='edge', # x 軸上的坐標(biāo)與柱體對(duì)其的位置
color='wheat', # 柱體的填充顏色
tick_label=labels, # 每個(gè)柱體的標(biāo)簽名稱(chēng)
alpha=0.6, # 柱體填充顏色的透明度
width=1, # 柱體的寬度
)
args = [[e] for e in ['x', 'height', 'align', 'color', 'tick_label', 'alpha', 'width']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 6
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x, # 柱體在 x 軸上的坐標(biāo)位置
height=y, # 柱體的高度
align='edge', # x 軸上的坐標(biāo)與柱體對(duì)其的位置
color='aqua', # 柱體的填充顏色
tick_label=labels, # 每個(gè)柱體的標(biāo)簽名稱(chēng)
alpha=0.6, # 柱體填充顏色的透明度
width=0.8, # 柱體的寬度
bottom=0.2, # 柱體基線(xiàn)的 y 軸坐標(biāo)
)
args = [[e] for e in ['x', 'height', 'align', 'color', 'tick_label', 'alpha', 'width',
'bottom']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 7
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x, # 柱體在 x 軸上的坐標(biāo)位置
height=y, # 柱體的高度
align='edge', # x 軸上的坐標(biāo)與柱體對(duì)其的位置
color='lightpink', # 柱體的填充顏色
tick_label=labels, # 每個(gè)柱體的標(biāo)簽名稱(chēng)
alpha=0.6, # 柱體填充顏色的透明度
width=0.8, # 柱體的寬度
bottom=0.2, # 柱體基線(xiàn)的 y 軸坐標(biāo)
edgecolor='g' # 柱體的邊框顏色
)
args = [[e] for e in ['x', 'height', 'align', 'color', 'tick_label', 'alpha', 'width',
'bottom', 'edgecolor']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
i = 8
ax = axes[i]
# 繪制柱狀圖
ax.bar(x=x, # 柱體在 x 軸上的坐標(biāo)位置
height=y, # 柱體的高度
align='center', # x 軸上的坐標(biāo)與柱體對(duì)其的位置
color='bisque', # 柱體的填充顏色
tick_label=labels, # 每個(gè)柱體的標(biāo)簽名稱(chēng)
alpha=0.6, # 柱體填充顏色的透明度
width=0.8, # 柱體的寬度
bottom=0.2, # 柱體基線(xiàn)的 y 軸坐標(biāo)
edgecolor='g', # 柱體的邊框顏色
linewidth=1.5, # 柱體邊框線(xiàn)的寬度
)
args = [[e] for e in ['x', 'height', 'align', 'color', 'tick_label', 'alpha', 'width',
'bottom', 'edgecolor', 'linewidth']]
# 向圖表子區(qū)添加標(biāo)題和數(shù)據(jù)表
title_table(ax)
# 設(shè)置整個(gè)子區(qū)的布局
fig.subplots_adjust(left=0,
bottom=0,
right=0.9,
top=1,
wspace=0.1, # 子區(qū)間空白區(qū)域的寬度的歸一化值
hspace=0.2); # 子區(qū)間空白區(qū)域的高度的歸一化值