有matplotlib和光谱数据的问题

时间:2017-03-26 07:33:51

标签: python matplotlib astronomy

img

我正在尝试使用此代码

从一个恒星目录中绘制.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文件

1 个答案:

答案 0 :(得分:0)

我可能无法完全理解您的问题,但为什么不使用

X, Y = numpy.genfromtxt('yourfile', dtype='str')
X = X.astype('float')
Y = Y.astype('float')

如果您的文件中有2列,则可以使用

转换表格
X, Y = numpy.genfromtxt('yourfile', dtype='str').T