matplotlib savefig()空白 - show()不是

时间:2012-10-31 23:59:25

标签: python matplotlib

我浏览了“可能已经有你答案的问题”,如果他们这样做了......我不理解。

我试图尽可能地消除并将我的问题简化为以下代码(我的道歉 - 我确信有一种更优雅的方式来获得所有40个的numpy数组,但这就是我的意思敲了敲我的头后想出来了......):

import numpy
import matplotlib.pyplot as plt

x=numpy.zeros((500,256))
x+=40
plt.title("Title")
plt.xlabel("Label")
plt.ylabel("Label")
plt.imshow(x,vmin=37.5,vmax=42.5, cmap='spectral')

#save the figure
filename="/xxx/yyy/matplotlibtest.jpg"
plt.savefig(filename)
plt.show()
plt.close()

plt.savefig()返回一个非常漂亮的图像,包含我的标签,轴和没有图形(即矩形是空白的)

plt.show()向我展示了上面所有的一个漂亮的绿色矩形,它位于我的轴之间,就像它应该的那样。我可以手动将此图保存到同一目录,并获得我期望的结果(即轴,标签,绿色矩形)。

我在没有show()的情况下尝试了这个,或者将show()调用放在第二位,因为有些问题&这里(和其他地方)的答案似乎暗示呼叫顺序可能是问题。

我已经在这段代码中以jpg的形式保存了其他数据(相同数据的直方图),所以我知道这台计算机可以保存为jpg。

我不确定savefig我做错了什么 - 有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:5)

添加:

import matplotlib
matplotlib.use('TkAgg')
在我致电

之前

import matplotlib.pyplot as plt

我能够让一切都愉快地工作。

(我还不明白后端,显然!)