所以现在我可以获得独特的文件,欢呼!但似乎第二个文件正在绘制第一个和第二个图,第三个是绘制所有三个,第四个是绘制所有四个,等等。这里是新代码:
for j in range(2):
dhulist=pyfits.open('test.fits')
row=5
colum=j
ax=[]
val=[]
for i in range(1600,3040):
val.append((dhulist[0].data[i,row,colum]))
ax.append(((((dhulist[0].header['CRPIX3'] -i)*(dhulist[0].header['CDELT3']))+5000)/1000))
plt.plot(ax,val)
#plt.show()
plt.savefig("5_{0}.png".format(j))
答案 0 :(得分:0)
plot
matplotlib
函数更新当前数字,或者如果没有当前数字则创建新数字。这是一个很好地显示跟踪从创建到结束的图形对象的示例。
import numpy as np
from matplotlib import pyplot as plt
x = np.linspace(0, 10)
for j in range(3):
y = x ** j
f = plt.figure()
plt.plot(x, y, figure=f)
f.savefig("test_{}.png".format(j))
plt.close(f)
请注意,涉及图形,打开,绘图,保存和关闭的每个操作都显式引用了图形对象。恕我直言,这是一个非常好的编码风格,如果您需要同时处理多个数字,这将非常有用。 Matplotlib还允许您隐式使用“当前数字”,如果您正在做一些简单的事情,这很好。这看起来更像是这样:
import numpy as np
from matplotlib import pyplot as plt
x = np.linspace(0, 10)
for j in range(3):
y = x ** j
plt.figure()
plt.plot(x, y)
plt.savefig("test2_{}.png".format(j))
plt.close()