如何使用matplotlib紧配图?

时间:2012-03-07 14:25:03

标签: python matplotlib figure

我找到了pyplot的tight_layout函数并希望使用它。在我的应用程序中,我将matplotlib图嵌入到Qt GUI中并使用数字而不是pyplot。有什么办法可以在那里申请tight_layout吗?如果我在一个图中有多个轴,它也可以工作吗?

1 个答案:

答案 0 :(得分:56)

只要像往常一样拨打fig.tight_layout()即可。 (pyplot只是一个方便的包装器。在大多数情况下,你只能用它来快速生成图形和轴对象,然后直接调用它们的方法。)

QtAgg后端和默认后端之间应该没有区别(或者如果有,那就是错误)。

E.g。

import matplotlib.pyplot as plt

#-- In your case, you'd do something more like:
# from matplotlib.figure import Figure
# fig = Figure()
#-- ...but we want to use it interactive for a quick example, so 
#--    we'll do it this way
fig, axes = plt.subplots(nrows=4, ncols=4)

for i, ax in enumerate(axes.flat, start=1):
    ax.set_title('Test Axes {}'.format(i))
    ax.set_xlabel('X axis')
    ax.set_ylabel('Y axis')

plt.show()

紧密布局之前

enter image description here

紧密布局后

import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=4, ncols=4)

for i, ax in enumerate(axes.flat, start=1):
    ax.set_title('Test Axes {}'.format(i))
    ax.set_xlabel('X axis')
    ax.set_ylabel('Y axis')

fig.tight_layout()

plt.show()

enter image description here