使用matplotlib给我以下警告:" UserWarning:tight_layout:

时间:2016-05-18 20:30:56

标签: python matplotlib graph

尝试使用python matplotlib做一个图表:但继续收到以下警告信息:

"UserWaring: tight_layout: falling back to Agg renderer  warnings.warn("tight_layout: falling back to Agg renderer")

我的代码如下:

plt.legend(loc='upper left',prop = {'size':7},bbox_to_anchor=(1,1))
plt.tight_layout(pad=7)
plt.xlabel ('Build')
plt.ylabel ('Time/Sec')
plt.title ('Performance Test')
plt.grid()
plt.show()

graph from the code 如何修复该警告信息?

1 个答案:

答案 0 :(得分:9)

您使用的是MacOSX吗?这似乎是一个众所周知的问题

https://github.com/matplotlib/matplotlib/issues/1852

我建议重新组织代码,以便使用Figure代替pyplot。您可以从plt.figure()方法获取图。然后,在Figure实例上调用set_tight_layout(True)。 试试这个示例代码:

import matplotlib
matplotlib.use('pdf')
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
fig.set_tight_layout(True)
fig.savefig('asd.pdf')  # No warning now

作为旁注,请看一下matplotlib文档

  

tight_layout()可以获取pad,w_pad和h_pad的关键字参数。它们控制图形边界周围和子图之间的额外填充。焊盘以字体大小的分数指定。

http://matplotlib.org/users/tight_layout_guide.html

这表示您的代码

plt.tight_layout(pad=7)

是错误的,因为pad的值应该在0和1之间。