Savefig 输出空白图像
- 2024-12-25 08:51:00
- admin 原创
- 73
问题描述:
我正在尝试保存使用 matplotlib 制作的图表;但是,保存的图像是空白的。
这是我的代码:
plt.subplot(121)
plt.imshow(dataStack, cmap=mpl.cm.bone)
plt.subplot(122)
y = copy.deepcopy(tumorStack)
y = np.ma.masked_where(y == 0, y)
plt.imshow(dataStack, cmap=mpl.cm.bone)
plt.imshow(y, cmap=mpl.cm.jet_r, interpolation='nearest')
if T0 is not None:
plt.subplot(123)
plt.imshow(T0, cmap=mpl.cm.bone)
#plt.subplot(124)
#Autozoom
#else:
#plt.subplot(124)
#Autozoom
plt.show()
plt.draw()
plt.savefig('tessstttyyy.png', dpi=100)
并且 tessstttyyy.png 是空白的(也尝试使用 .jpg)
解决方案 1:
首先,当 时会发生什么T0 is not None
?我会测试一下,然后调整传递给 的值plt.subplot()
;也许尝试值 131、132 和 133,或者取决于是否T0
存在的值。
其次,plt.show()
调用后,会创建一个新图形。要处理此问题,您可以
plt.savefig('tessstttyyy.png', dpi=100)
拨打电话前先致电plt.show()
show()
通过调用plt.gcf()
“获取当前图形”来保存您之前的图形,然后您可以随时调用savefig()
该对象。Figure
例如:
fig1 = plt.gcf()
plt.show()
plt.draw()
fig1.savefig('tessstttyyy.png', dpi=100)
在您的代码中,“tesssttyyy.png”是空白的,因为它正在保存新图形,但其中尚未绘制任何内容。
解决方案 2:
plt.show()
应该在之后plt.savefig()
解释:plt.show()
清除整个事物,因此之后的任何事情都会发生在一个新的空白图形上
解决方案 3:
改变函数的顺序对我来说解决了这个问题:
首先 保存情节
然后 显示情节
如下:
plt.savefig('heatmap.png')
plt.show()
解决方案 4:
在 show() 之前调用 savefig 对我有用。
fig ,ax = plt.subplots(figsize = (4,4))
sns.barplot(x='sex', y='tip', color='g', ax=ax,data=tips)
sns.barplot(x='sex', y='tip', color='b', ax=ax,data=tips)
ax.legend(['Male','Female'], facecolor='w')
plt.savefig('figure.png')
plt.show()
解决方案 5:
让我给出一个更详细的例子:
import numpy as np
import matplotlib.pyplot as plt
def draw_result(lst_iter, lst_loss, lst_acc, title):
plt.plot(lst_iter, lst_loss, '-b', label='loss')
plt.plot(lst_iter, lst_acc, '-r', label='accuracy')
plt.xlabel("n iteration")
plt.legend(loc='upper left')
plt.title(title)
plt.savefig(title+".png") # should before plt.show method
plt.show()
def test_draw():
lst_iter = range(100)
lst_loss = [0.01 * i + 0.01 * i ** 2 for i in xrange(100)]
# lst_loss = np.random.randn(1, 100).reshape((100, ))
lst_acc = [0.01 * i - 0.01 * i ** 2 for i in xrange(100)]
# lst_acc = np.random.randn(1, 100).reshape((100, ))
draw_result(lst_iter, lst_loss, lst_acc, "sgd_method")
if __name__ == '__main__':
test_draw()
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
热门标签
云禅道AD