как сделать так, чтобы Y-метка подзаголовков отображалась только один раз?

#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,)
 

Результирующее изображение будет:

введите описание изображения здесь