我想将多个箱形图(在python3中使用matplotlib)绘制到一个图中,并沿x轴相应地标记它们。我尝试了多种方法来设置自定义X-ticks,但始终会显示旧的数字刻度。
以下两个代码段产生相同的结果。在第一个中,我使用plt.xticks(ticks, labels, rotation='vertical')
设置刻度(也无法旋转)。在这两种情况下,compressed_runs
都是字典,其中键与x-ticks的标签重合,并且值是数字数组。
plt.figure(figsize=[10, 8], dpi=300)
labels = ['test']*len(compressed_runs)
ticks = [i+1 for i, v in enumerate(compressed_runs)]
plt.xticks(ticks, labels, rotation='vertical')
plt.ylabel('communication times [µs]')
plt.title('Test title')
plt.boxplot(compressed_runs.values(), showfliers=False)
plt.savefig(plotname)
plt.close()
我也尝试过直接修改图形的轴:
fig = plt.figure(figsize=[10, 8], dpi=300)
labels = ['test']*len(compressed_runs)
ticks = [i+1 for i, v in enumerate(compressed_runs)]
plt.xticks(ticks, labels, rotation='vertical')
fig.axes[0].set_xticklabels(labels)
plt.ylabel('communication times [µs]')
plt.title('Test title')
plt.boxplot(compressed_runs.values(), showfliers=False)
plt.savefig(plotname)
plt.close()
tictic
您可以在图中看到,枚举的x-ticks仍然从命名的x-ticks下方显示出来。在这种情况下,我希望每个箱线图下都只有“测试”。
我想将多个箱形图(在python3中使用matplotlib)绘制到一个图中,并沿x轴相应地标记它们。我尝试了多种方法来设置自定义x-ticks,但是旧的数字...
问题原来是函数调用的顺序。创建箱形图时应将plt.xticks(ticks, labels)
称为after