从lin命令的输入文件打印数据

2024-10-01 02:31:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个名为“密度”的数据文件_空气数据“我需要从每一列中获取数据,并将它们放入各自的列表中(即tList将保存以“-10”开头的列中的值,而density将保存以“1.341”开头的列中的值。然后需要绘制列表。我无法用这些数据填充列表…有什么帮助吗?在

from scitools.std import *
import sys
import pylab as pl

inFile = sys.argv[-1]

f = open(inFile, 'r')

for x in range(4):
    f.readline()

tList = []
density = []

for line in f:
    words = line.split()
    for x in words:
        tList.append(words[x])
        density.append(words[x])

f.close()

plot(tList, density)

数据文件是:

^{pr2}$

Tags: 数据inimport列表for数据文件sysline
3条回答

尝试将循环更改为:

for line in f:
    words = line.split()
    tList.append(int(words[0]))
    density.append(float(words[1]))

由于使用数字索引可以快速混淆代码,因此可以使用元组解包将值分配给有意义的变量名,例如:

^{pr2}$

你用皮拉来绘制,为什么不读?

import sys
import pylab as pl

inFile = sys.argv[-1]
temperature, density = pl.genfromtxt(inFile, unpack=True)

pl.plot(temperature, densitiy, 'rx')
pl.show()

^{cd1>}是必需的,因为数据是列排列的。 'rx'绘制红色十字,因为您不想连接点。

函数^{cd3>}是加载pylab的^{cd4>}的一部分。

我建议不要使用pylab,而是自己加载相应的模块,在这种情况下^{cd5>}和^{cd4>}:

^{pr2}$

如果导入的导入超过1,则不要使用^{{cd7>}

有一个numpy函数,名为loadtxt,它将ascii文件加载到numpy数组中:

import numpy as np
import matplotlib.pylab as plt
import sys

inFile = sys.argv[-1]
temperature, density = np.loadtxt(inFile,unpack=True)
plt.plot(temperature, density,'ko')
plt.show()

相关问题 更多 >