Python 第二个y轴标签被切断

Python 第二个y轴标签被切断,python,graph,matplotlib,Python,Graph,Matplotlib,我试图用matplotlib在条形图中绘制两组数据,因此我使用了twinx()方法的两个轴。但是,第二个y轴标签被切断。我尝试了几种不同的方法,但没有成功(tight_layout(),在rcParams中设置major_pads等等)。我觉得解决办法很简单,但我还没有想到 这里有一个MWE: #!/usr/bin/env python import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyp

我试图用matplotlib在条形图中绘制两组数据,因此我使用了
twinx()
方法的两个轴。但是,第二个y轴标签被切断。我尝试了几种不同的方法,但没有成功(
tight_layout()
,在
rcParams
中设置
major_pad
s等等)。我觉得解决办法很简单,但我还没有想到

这里有一个MWE:

#!/usr/bin/env python
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 21})
ax = plt.gca()
plt.ylabel('Data1') #Left side
ax2 = ax.twinx()
for i in range(10):
  if(i%2==0):
    ax.bar(i,np.random.randint(10))
  else:
    ax2.bar(i,np.random.randint(1000),color='k')


plt.ylabel('Data2') #Right
侧面 plt.savefig(“test.png”)


我刚想出来:诀窍是在
savefig
中使用
bbox\u inches='tight'

例如,
plt.savefig(“test.png”,bbox\u inches='tight')


我遇到了同样的问题,
plt.tight\u layout()
没有自动解决。
相反,我在
ylabel
/
set\u ylabel
中使用了labelpad参数:

ax.set_ylabel('label here',rotation=270,color='k',labelpad=15)


我猜当你问这个问题时,这并没有实现,但由于这是google上的最高结果,希望它能帮助当前matplotlib版本的用户。

你也可以使用
tight_布局。
。在什么情况下<代码>plt.tight_layout()对我来说没用。。。谢谢出于某种原因,
plt.autoscale()
也会将其切断。如果有帮助的话,我正在使用1.1.1版。这与fig.tight_layout()配合使用,这是一个很好的建议。我相信我正在使用mpl1.5。
plt.tight\u layout()
bbox\u inches='tight'
都对我有效,但对我无效。y标签在保存的图像中仍然被切断。