matplotlib:创建新图形并保存到文件
Posted
技术标签:
【中文标题】matplotlib:创建新图形并保存到文件【英文标题】:matplotlib: creating new figure and saving to file 【发布时间】:2014-08-13 20:49:58 【问题描述】:我正在尝试使用matplotlib
生成不同的数字:
import matplotlib.pyplot as plt
for item in item_list:
plt.imshow(item)
plt.grid(True)
# generate id
plt.savefig(filename + id)
plt.close()
该循环确实生成了许多文件,但它们似乎显示了不同图形的叠加,而如果我将这些项目逐一绘制,它们看起来就大不相同了。
如何确保每个项目都独立绘制并保存到文件中?
【问题讨论】:
plt.savefig
保存当前图形,只要您不创建新图形,它就会将所有内容添加到相同的图形中,从而叠加。
How do I tell Matplotlib to create a second (new) plot, then later plot on the old one? 的可能重复项
【参考方案1】:
您需要创建一个新的图形对象,或者清除轴。
清轴示例代码:
import matplotlib.pyplot as plt
y_data = [[1,1],[2,2],[3,3]] #just some dummy data
x = [0,1]
fig,ax = plt.subplots()
for y in y_data:
#generate id
ax.cla() #clear the axis
ax.plot([0,1],y)
fig.savefig(filename + id)
新图形对象示例:
import matplotlib.pyplot as plt
y_data = [[1,1],[2,2],[3,3]] #just some dummy data
x = [0,1]
for y in y_data:
#generate id
fig,ax = plt.subplots() #create a new figure
ax.plot(x,y)
fig.savefig(filename + id)
希望这有助于您入门。
【讨论】:
@Bob 而不是ax.plot()
写ax.imshow(...)
。
由于某些原因,我没有得到与零元素相对应的漂亮白色。是 jpeg 的问题吗?
@Bob 嗯,不知道更多细节很难说。我发现 jpeg 不太可能是问题所在。这可能取决于您使用的colormap
。这是我发现在这方面有用的链接:matplotlib.org/examples/color/colormaps_reference.html
@Bob 如果问题仍然存在,我建议您浏览 SO 寻求解决方案,或者如果您没有找到所需的内容,请打开一个新问题。也考虑接受我对这个问题的回答。 ;)以上是关于matplotlib:创建新图形并保存到文件的主要内容,如果未能解决你的问题,请参考以下文章