此问题已在此处有答案:
Color multiple twinx() axes(1个答案)
3年前关闭。
我使用ax2 = ax1.twinx()
属性在同一个图中有几个具有不同缩放比例的图(3),不幸的是,y轴的值“彼此重叠”,如图所示(右y轴,蓝色值有时会隐藏)
下面是图形的代码以供参考
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()
1条答案
按热度按时间cbjzeqam1#
您可以为每个轴使用
get_yaxis().set_ticks()
,并将刻度设置为空白列表[]
或者你可以使用
set_yticklabels()
函数来设置每个轴的刻度。也可以为每个轴向
tick_params()
添加left=False, right=False, labelleft=False, labelright=False
参数第一个比较干净。