我不希望在我的图形的 y 轴上有第一个标签,它看起来像这样 现在,因为我觉得这样不太好。
在我的解决方案中,我尝试了排除相应的(第一个)刻度,但这不是必需的。我只是希望标签(即 0.3)减少。
我为实现此目标所做的尝试是在脚本中添加以下内容:
y_ticks = ax.get_yticks()
ax.set_yticks(y_ticks[1:])
但我无法解决问题。
有关绘图的完整部分看起来像这样
plt.style.use('seaborn-v0_8-bright')
plt.rcParams.update({'font.size': 11, 'font.family': 'serif'})
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(specific_alpha_degrees, best_X_values, linestyle='-', marker='', label=r'$P_1$', color='blue')
ax.plot(specific_alpha_degrees, best_X_values2, linestyle='--', marker='', label=r'$P_2$', color='green')
ax.plot(specific_alpha_degrees, best_X_values3, linestyle='-.', marker='', label=r'$P_3$', color='red')
ax.plot(specific_alpha_degrees, best_X_values4, linestyle=':', marker='', label=r'$P_4$', color='purple')
ax.plot(specific_alpha_degrees, best_X_values5, linestyle='-', marker='', label=r'$P_5$', color='orange')
y_ticks = ax.get_yticks()
ax.set_yticks(y_ticks[1:])
ax.set_xlabel(r'Incline [$deg$]')
ax.set_ylabel(r'$x_{\text{opt}}$')
ax.set_xlim(min(specific_alpha_degrees)-1, max(specific_alpha_degrees)+1)
ax.grid(True, which='major', linestyle='--', linewidth=0.5)
ax.minorticks_on()
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5), fontsize='medium', frameon=False, framealpha=0.9, borderpad=1)
ax.spines['left'].set_position(('data', 0))
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_color('black')
ax.spines['left'].set_color('black')
fig.tight_layout()
plt.show()
的代码的问题在于在检索刻度位置后立即设置刻度位置。
ax.get_yticks()
首先返回默认刻度位置。
为此,需要
在绘制数据后
获取刻度位置,例如在调用
ax.plot(...)
之后:
# ... 你的绘图代码 ...
# 在绘制数据后获取刻度位置
y_ticks = ax.get_yticks()
ax.set_yticks(y_ticks[1:])
# ... 你的其余代码 ...
此更改将使的代码按预期工作,从 y 轴中删除第一个刻度标签。
标签:python,matplotlib,axis From: 78808609