辅助轴上的 Y 标签彼此重叠

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

我正在尝试绘制以下内容,我注意到 y 轴上的标签全部位于彼此之上。

如何避免这种情况?

我使用下面的代码来绘制图:

plt.figure(figsize=(18, 7))
fig, ax1 = plt.subplots(figsize=(18, 7))
for i in range(0, len(df_data), 1):
    ax2 = ax1.twinx()
    _df_data = df_data[i][(df_data[i].wav_um > 9.29) & (df_data[i].wav_um < 9.51)].reset_index(drop=True)
    ax1.plot(_df_data.wav_um, _df_data.mircat_auc, 'o--', linewidth=1, c = 'blue', mfc= 'lightblue', mec='black', ms=4, alpha=0.7, label=hdf5_file_locations[i])
    ax2.plot(_df_data.wav_um, _df_data.thorlabs_pw_mw, 'o--', linewidth=1, c = 'orange', mfc= 'salmon', mec='gray', ms=3, alpha=0.7)

ax1.set_xlabel(r'Wavelength [$\mu m$]', fontsize = 14)
ax1.set_ylabel(r' AUC', fontsize = 14, color='blue')
ax2.set_ylabel(r' power [mW]', fontsize = 14, color='orange')
ax1.tick_params(axis="x", labelsize=15)
ax2.grid(which='both', color='0.9', linestyle='-', linewidth=1)
python matplotlib
1个回答
0
投票

我无法运行代码,因为

df_data
对象未定义。然而,仅通过查看代码,我可以告诉您应该将轴克隆
ax2 = ax1.twinx()
移出循环。现在,您在每次迭代时都会创建一个新的双轴,而实际上您只需要一个。所以请尝试以下方法:

plt.figure(figsize=(18, 7))
fig, ax1 = plt.subplots(figsize=(18, 7))
ax2 = ax1.twinx()

for i in range(0, len(df_data), 1):
    _df_data = df_data[i][(df_data[i].wav_um > 9.29) & (df_data[i].wav_um < 9.51)].reset_index(drop=True)
    ax1.plot(_df_data.wav_um, _df_data.mircat_auc, 'o--', linewidth=1, c = 'blue', mfc= 'lightblue', mec='black', ms=4, alpha=0.7, label=hdf5_file_locations[i])
    ax2.plot(_df_data.wav_um, _df_data.thorlabs_pw_mw, 'o--', linewidth=1, c = 'orange', mfc= 'salmon', mec='gray', ms=3, alpha=0.7)

ax1.set_xlabel(r'Wavelength [$\mu m$]', fontsize = 14)
ax1.set_ylabel(r' AUC', fontsize = 14, color='blue')
ax2.set_ylabel(r' power [mW]', fontsize = 14, color='orange')
ax1.tick_params(axis="x", labelsize=15)
ax2.grid(which='both', color='0.9', linestyle='-', linewidth=1)

我希望这有帮助!

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