使用matplotlib读取文本文件中的列时的偏移量

时间:2015-04-20 22:11:28

标签: python matplotlib

我有一个包含数字数组的文本文件,我想从中绘制某些列与其他列。我定义了一个列函数,因此我可以为每个列指定一个名称,然后绘制它们,如下面的示例代码所示:

def column(matrix,i):
    return [float(row.split()[i]) for row in matrix]

Db = file('ResolutionEffects', 'r' )
HIcontour = column(Db,1)
Db.seek(1)

但是,当我在终端中显示一列来检查Python确实正在读取正确的列时,看起来该列的第一个值(在我的终端中返回)实际上是该列中NEXT列的第一个值。文本文件。所有其他数字都来自正确的列。文本文件中没有空格或行。据我所知,这个偏移发生在第一个之后的每一列。 如果有人能说出为什么会这样,或者找到一种更健壮的方式来读取文本文件中的列,我将非常感激。

1 个答案:

答案 0 :(得分:0)

事实上,我发现loadtext更加强大。将我的文本文件转换为数据文件(.dat)后,我只需使用:

a=np.loadtxt('ResolutionEffects.dat', usecols=(0,1,11,12))
ax1.plot(a[:,0], a[:,1], 'dk', label='HI')
ax1.plot(a[:,2], a[:,3], 'dr', label='CO')

没有奇怪的抵消或错误:)感谢Ajean和jedwards!