#python #matplotlib #subplot
#python #matplotlib #подзаголовок
Вопрос:
У меня есть простая проблема, которую мне нужно решить, вот пример
import matplotlib.pyplot as plt
fig, ax = plt.subplots(nrows=1, ncols=3, figsize=(6, 6))
for axs in ax.flat:
axs.set(ylabel='AUC')
это вывод
Я хочу, чтобы Y-метка (AUC) отображалась только один раз (совместно использовалась) на первом подзаголовке, а другие значения должны оставаться. Это желаемый результат
Как это решить? Пожалуйста, мне нужна ваша помощь
Комментарии:
1. Вы устанавливаете метку в цикле, поэтому очевидно, что каждый
ax
объект помечен. Переместите его за пределы цикла и просто пометьтеax.flat[0]
. Смотрите также: matplotlib.org/3.1.0/gallery/subplots_axes_and_figures /…
Ответ №1:
Поскольку вы устанавливаете свои метки в цикле, вы соответствующим образом помечаете все оси в своих подзаголовках. Что вам нужно, так это пометить только первую ячейку в строке вашего подзаголовка.
Итак, это:
for axs in ax.flat:
axs.set(ylabel='AUC')
изменения в:
ax[0].set_ylabel("AUC")
Я также рекомендую вам разделить ось между вашими несколькими подзаголовками, поскольку все yticks делают ваш график немного менее читаемым, чем идеальный. Вы можете изменить его, как показано ниже:
fig, ax = plt.subplots(nrows=1, ncols=3, figsize=(6, 6), sharex=True, sharey=True,)
Результирующее изображение будет: