7

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

我试图尽可能多地消除并将我的问题简化为以下代码(我的道歉 - 我确信有一种更优雅的方式来获取所有 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 上做错了什么——有什么建议吗?

谢谢!

4

1 回答 1

7

通过添加:

import matplotlib
matplotlib.use('TkAgg')

在我打电话之前

import matplotlib.pyplot as plt

我能够让一切工作愉快。

(我还不明白后端,很清楚!)

于 2012-11-01T00:33:08.023 回答