如何删除matplotlib箱形图中自定义标签下的数字x勾号?

问题描述 投票:0回答:1

我想将多个箱形图(在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,但是旧的数字...

python matplotlib label boxplot axes
1个回答
0
投票

问题原来是函数调用的顺序。创建箱形图时应将plt.xticks(ticks, labels)称为after

© www.soinside.com 2019 - 2024. All rights reserved.