如何为Matplotlib绘图添加右侧Y轴自定义刻度与标签
实现方案
你只需要在原有代码的plt.show()前添加以下代码即可完成需求:
# 创建共享X轴的右侧Y轴对象 ax_right = plt.gca().twinx() # 保持右侧Y轴范围和左侧完全一致,确保刻度位置对齐 ax_right.set_ylim(plt.gca().get_ylim()) # 仅在右侧Y轴5000位置添加标签为P的刻度 ax_right.set_yticks([5000], labels=["P"])
如果你使用的是3.4版本以下的Matplotlib,需要分开设置刻度和标签:
ax_right.set_yticks([5000]) ax_right.set_yticklabels(["P"])
完整修改后代码
ticks = [3500, 5000] labels = ["\u0332P", "P\u0305"] plt.title("Nilai Premi Optimal \n dengan Batasan") plt.xlabel("$\it{Bargaining Power}$ \u03BB") plt.plot(xlamda, PsiBLamda, color = "red",linestyle='dashed',label = "$\u03C8_{B} (I^*(X))$") plt.plot(xlamda, PsiSLamda, color = "blue",linestyle='dashed', label = "$\u03C8_{S} (I^*(X))$") plt.legend(loc="upper left") plt.plot(xlamda, PLamda, color = "black") plt.xlim([0, 1]) plt.ylim([3500, 7000]) # 新增代码开始 ax_right = plt.gca().twinx() ax_right.set_ylim(plt.gca().get_ylim()) ax_right.set_yticks([5000], labels=["P"]) # 新增代码结束 plt.show()
实现逻辑说明:twinx()方法会创建和当前图表共享X轴的右侧独立Y轴,我们将其Y轴范围设置为和左侧Y轴完全一致,保证5000的刻度位置和左侧对齐,仅保留指定位置的P标签,不会影响原有图表的任何展示效果。
内容的提问来源于stack exchange,提问作者Serr
相关产品推荐
相关产品推荐

