Python 如何旋转次y轴标签,使其不旋转';t与y形记号重叠,matplotlib

Python 如何旋转次y轴标签,使其不旋转';t与y形记号重叠,matplotlib,python,matplotlib,Python,Matplotlib,我试图将次要y标签旋转到270度,但当我通过rotate=270参数时,它与我的y-tick文本重叠。有没有办法解决这个问题 fig, ax = plt.subplots() ax.plot(df.index,df.tripTime,label='Fishing Effort', marker='D') ax2=ax.twinx() ax2.plot(tr.index,tr.cost, 'g',label='Fuel Expenditure', marker='d') lines = ax.

我试图将次要y标签旋转到
270度
,但当我通过
rotate=270
参数时,它与我的y-tick文本重叠。有没有办法解决这个问题

fig, ax = plt.subplots()

ax.plot(df.index,df.tripTime,label='Fishing Effort', marker='D')
ax2=ax.twinx()
ax2.plot(tr.index,tr.cost, 'g',label='Fuel Expenditure', marker='d')

lines = ax.get_lines() + ax2.get_lines()
ax.legend(lines,[line.get_label() for line in lines], loc='lower left')
ax.set_ylim((0, 18))

ax2.set_ylabel('Cost ($)',color='g', rotation=270)

for tl in ax2.get_yticklabels():
    tl.set_color('g')

ax.set_ylabel('Fishing Effort (hrs)')
ax.set_xlabel('Time (days)')
plt.show()

更新:这个答案不是很好,请看评论

这看起来像一个bug,您可能应该将其报告给

修复时,一个快速解决方案是将标签填充设置为更高的值:

ax2.set_ylabel('Cost ($)', color='g', rotation=270, labelpad=15)

链接到github问题,供任何遇到此问题的人使用:在问题跟踪器上指出,正确的解决方案是在调用
set_ylabel
(即此处
va='bottom'
)时为新的旋转设置适当的垂直对齐。我希望我能多次对此进行投票。你不知道我试图解决这个问题有多久了。@TravisJ我在这个答案中给出的解决方案不是正确的。请参阅tacaswell在bug tracker上提供的一个,带有
va='bottom'
-这就是它的目的。@pmos,谢谢。我确实在评论中使用了这个建议。我建议你在回答中加入评论,而不是让你答案的读者参考评论。这样,如果评论被删除(无论出于何种原因),内容仍然可用。另外,编辑你的答案的目的是让它变得更好——所以当你学到新的东西时,把它编辑到你的答案中,让你自己的答案变得更好。