【发布时间】:2012-10-21 13:42:00
【问题描述】:
我浏览了“可能已经有你答案的问题”,如果有的话……我不明白。
我试图尽可能多地消除并将我的问题简化为以下代码(我很抱歉 - 我确信有一种更优雅的方式来获取所有 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 时做错了什么 - 有什么建议吗?
谢谢!
【问题讨论】:
-
我刚刚在另一台工作的计算机上测试了这段代码。它不起作用的系统是 Ubuntu 10.04,我的帐户是未清洗大众的一部分(没有特权)。我假设这意味着它是 Ubuntu 后端的东西,尽管它很乐意为我保存直方图的 jpg 格式。
标签: python matplotlib