首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matplotlib共享轴(twinx)隐藏y_axis值

matplotlib共享轴(twinx)隐藏y_axis值
EN

Stack Overflow用户
提问于 2019-10-10 13:13:22
回答 1查看 717关注 0票数 1

我使用ax2 = ax1.twinx()属性在同一个图中有几个不同比例的图(3),不幸的是,y轴的值“相互重叠”,如下所示(右y轴,蓝色的值有时是隐藏的)

以下是图形的代码以供参考

代码语言:javascript
复制
fig, ax1 = plt.subplots()
mpl.rcParams['lines.linewidth'] = 0.4

SMOOTH_FAC = 0.85

color = 'tab:red'
ax1.set_xlabel('Iterations')
ax1.set_ylabel('Non metric loss', color=color)
ax1.plot(smooth(net_loss,SMOOTH_FAC), color=color)
ax1.tick_params(axis='y', labelcolor=color)


ax2 = ax1.twinx()  # instantiate a second axes that shares the same x-axis
color = 'tab:blue'
ax2.set_ylabel('Metric supervised loss', color=color)  # we already handled the x-label with ax1
ax2.plot(smooth(metric_super_loss,SMOOTH_FAC), color=color)
ax2.tick_params(axis='y', labelcolor=color)


ax3 = ax1.twinx()
color = 'tab:orange'
ax3.set_ylabel('Supervised loss', color=color,labelpad=20)  # we already handled the x-label with ax1
ax3.plot(smooth(supervised_loss,SMOOTH_FAC),color=color, zorder=1)
ax3.tick_params(axis='y', labelcolor=color)

ax1.set_zorder(ax2.get_zorder()+ax3.get_zorder()+1)
ax1.patch.set_visible(False)
fig.tight_layout() 
EN

回答 1

Stack Overflow用户

发布于 2019-10-10 13:46:42

您可以对每个轴使用get_yaxis().set_ticks(),并将勾号设置为空白列表[]

代码语言:javascript
复制
ax1.get_yaxis().set_ticks([])
ax2.get_yaxis().set_ticks([])
ax2.get_yaxis().set_ticks([])

或者,您可以使用set_yticklabels()函数为每个轴设置记号。

代码语言:javascript
复制
ax1.set_yticklabels([])
ax2.set_yticklabels([])
ax3.set_yticklabels([])

或者,您可以为每个轴向tick_params()添加left=False, right=False, labelleft=False, labelright=False参数

代码语言:javascript
复制
ax1.tick_params(axis='y', labelcolor=color,left=False, right=False,labelleft=False, labelright=False)

第一个更干净。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58315830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档