matplotlib画图、表一起显示
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、显示效果