
我正在尝试使用以下代码从一个星表绘制一个.dat文件
try:
import pyfits
noPyfits=False
except:
noPyfits=True
import matplotlib.pyplot as plt
import numpy as np
f2 = open('/home/mcditoos/Desktop/Astrophysics_programs/Data_LAFT/ESPECTROS/165401.dat', 'r')
lines = f2.readlines()
f2.close()
x1 = []
y1 = []
for line in lines:
p = line.split()
x1.append(float(p[0]))
y1.append(float(p[1]))
xv = np.array(x1)
yv = np.array(y1)
plt.plot(xv, yv)
plt.show()然而,我得到了以下错误:
x1.append(float(p[0]))
IndexError: list index out of range我还想知道有没有办法使它成为一个程序,能够打开下一个给定输入的.dat文件
发布于 2017-04-10 22:19:59
我可能不完全理解你的问题,但你为什么不使用
X, Y = numpy.genfromtxt('yourfile', dtype='str')
X = X.astype('float')
Y = Y.astype('float')如果您的文件中有2列,您可以使用以下命令来转置您的表
X, Y = numpy.genfromtxt('yourfile', dtype='str').Thttps://stackoverflow.com/questions/43026250
复制相似问题