Python 如何使子批次的Y标签只显示一次?

Python 如何使子批次的Y标签只显示一次?,python,matplotlib,subplot,Python,Matplotlib,Subplot,我有一个简单的问题需要解决,下面是一个例子 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)在第一个子批次中只出现一次(共享),其他值应该保留。这是期望的输出 如何解决这个问题?请告诉我需要您的帮助因为您正在循环中设置标签,所以您正在相

我有一个简单的问题需要解决,下面是一个例子

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)在第一个子批次中只出现一次(共享),其他值应该保留。这是期望的输出


如何解决这个问题?请告诉我需要您的帮助

因为您正在循环中设置标签,所以您正在相应地标记子批次中的所有轴。您需要的是只标记子批次行中的第一个单元格

因此:

for axs in ax.flat:
    axs.set(ylabel='AUC')
更改:

ax[0].set_ylabel("AUC")
我还建议您在多个子绘图之间共享轴,因为所有的Ytick都会使绘图的可读性稍低于理想值。您可以按以下方式进行更改:

fig, ax = plt.subplots(nrows=1, ncols=3,  figsize=(6, 6), sharex=True, sharey=True,)
生成的图像将是:


在循环中设置标签,因此显然每个
ax
对象都有标签。将其移到循环之外,只需标记为ax.flat[0]。另见: