我正在绘制一个数据集,使用的matplotlib地方我有一个相当"高"的xlabel(它是一个在TeX中呈现的公式,包含一个分数,因此其高度相当于几行文本).
在任何情况下,当我绘制数字时,公式的底部总是被切断.改变图形大小似乎没有帮助,我无法弄清楚如何将x轴"向上"移动以为xlabel腾出空间.这样的事情将是一个合理的临时解决方案,但更好的方法是让matplotlib自动识别标签被切断并相应调整大小.
这是我的意思的一个例子:
import matplotlib.pyplot as plt
plt.figure()
plt.ylabel(r'$\ln\left(\frac{x_a-x_b}{x_a-x_c}\right)$')
plt.xlabel(r'$\ln\left(\frac{x_a-x_d}{x_a-x_e}\right)$')
plt.show()
Run Code Online (Sandbox Code Playgroud)
当你可以看到整个ylabel时,xlabel在底部被切断.
在这是特定于机器的问题的情况下,我在OSX 10.6.8上使用matplotlib 1.0.0运行它
阅读下面的文章,我设法将一个传奇放在外面.
码:
import matplotlib.pyplot as pyplot
x = [0, 1, 2, 3, 4]
y = [xx*xx for xx in x]
fig = pyplot.figure()
ax = fig.add_subplot(111)
box = ax.get_position()
ax.set_position([box.x0, box.y0, box.width*0.8, box.height])
ax.plot(x, y)
leg = ax.legend(['abc'], loc = 'center left', bbox_to_anchor = (1.0, 0.5))
#pyplot.show()
fig.savefig('aaa.png', bbox_inches='tight')
Run Code Online (Sandbox Code Playgroud)
pyplot.show()显示正确的情节,外面有一个图例.但是当我将其保存为文件时fig.savefig(),图例会被截断.
一些谷歌搜索显示我作为变通方法添加这样bbox_extra_artists=[leg.legendPatch]或bbox_extra_artists=[leg]至savefig(),但既不工作.
这样做的正确方法是什么?Matplotlib版本为0.99.3.
谢谢.