1、图表一起
1.1、代码
import numpy as np
import matplotlib.pyplot as plt
labels = ['a', 'longlonglong', 'bbb', 'ccc', 'dddddddd', 'eeeee', 'ffff', 'ggggggggg']
step1 = [0.75, 1.22, 20.27, 0.49, 5.52, 11.76, 2.30, 0.64]
step2 = [0.89, 3.62, 18.69, 0.22, 9.61, 14.06, 1.28, 0.27]
code_size = [step1, step2]
width = 0.8
x = np.arange(len(labels)) # the label locations
# 条形宽度
width = 0.5 # the width of the bars
fig, ax = plt.subplots(layout='constrained')
count = 1
for step in code_size:
ax.bar(labels, step, width, label='Step ' + str(count))
count += 1
ax.set_ylabel('Time used (s)')
ax.set_title('Time and size')
ax.set_xticks(x + width, [], fontsize=10)
ax.legend()
plt.xticks(rotation=45)
plt.table(cellText=code_size,
rowLabels=['row title1', 'row title2'],
colLabels=labels,
cellLoc='center',
loc='bottom')
plt.subplots_adjust(bottom=0.05)
plt.show()
1.2、显示效果

2、图表分离
2.1、代码
import numpy as np
import matplotlib.pyplot as plt
labels = ['a', 'longlonglong', 'bbb', 'ccc', 'dddddddd', 'eeeee', 'ffff', 'ggggggggg']
code_size = ['5KB', '83KB', '1.7MB', '18KB', '1MB', '18KB', '4MB', '55KB']
step1 = [0.75, 1.22, 20.27, 0.49, 5.52, 11.76, 2.30, 0.64]
step2 = [0.89, 3.62, 18.69, 0.22, 9.61, 14.06, 1.28, 0.27]
width = 0.8
fig, (ax, ax_table) = plt.subplots(nrows=2, gridspec_kw=dict(height_ratios=[3, 1]))
ax_table.axis('off')
ax.bar(labels, step1, width, label='Step 1')
ax.bar(labels, step2, width, bottom=step1, label='Step 2')
ax.set_ylabel('Time used (s)')
ax.set_title('Time and size')
ax.legend()
ax.tick_params(axis='x', labelrotation=45)
ax_table = plt.table(cellText=[code_size],
rowLabels=['Code size'],
loc='bottom')
plt.subplots_adjust(bottom=0.05)
plt.show()
2.2、显示效果
