第二个y轴标签被切断

时间:2014-01-22 16:09:19

标签: python graph matplotlib

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

这是一个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”)

Sample graph with Data2 cut off

2 个答案:

答案 0 :(得分:72)

我刚想通了:诀窍是在bbox_inches='tight'中使用savefig

E.G。 plt.savefig("test.png",bbox_inches='tight')

fixed now

答案 1 :(得分:0)

我遇到了plt.tight_layout()不能自动解决的同一问题。
相反,我在ylabel / set_ylabel中使用了labelpad参数,如下所示:

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

我猜这不是在您提出此问题时实施的,但由于它是google上的最高结果,希望它可以为当前matplotlib版本的用户提供帮助。