Я хочу построить несколько коробочных диаграмм (используя matplotlib в python3) на одной фигуре и пометить их соответственно вдоль оси x. Я пробовал несколько методов для установки пользовательских x-тиков, но старые числовые тики всегда просвечивают.
Следующие два фрагмента кода дают одинаковый результат. В первом я использую 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()
Как вы можете видеть на рисунке, перечисленные x-тики все еще видны из-под названных x-тиков. В этом случае я ожидаю, что только «test» будет находиться под каждым боксплотом.