我正在尝试使用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”)
答案 0 :(得分:72)
我刚想通了:诀窍是在bbox_inches='tight'
中使用savefig
。
E.G。 plt.savefig("test.png",bbox_inches='tight')
答案 1 :(得分:0)
我遇到了plt.tight_layout()
不能自动解决的同一问题。
相反,我在ylabel
/ set_ylabel
中使用了labelpad参数,如下所示:
ax.set_ylabel('label here', rotation=270, color='k', labelpad=15)
我猜这不是在您提出此问题时实施的,但由于它是google上的最高结果,希望它可以为当前matplotlib版本的用户提供帮助。