我有一些数据存储在文件(xyz.dat)中,格式如下:
1 0.997790664988225E+000 0.100177762164687E+001 0.100034262755073E+001
2 0.997788473973293E+000 0.100177969047903E+001 0.100034273413754E+001
3 0.997782981718032E+000 0.100178486093194E+001 0.100034301665219E+001
我想要做的是,对于每一行,将第一列存储为x
,将其余值存储为y[1]
,y[2]
,y[3]
...等等。后来我想分别为每一行绘制y[n]
中存储的数据。我是python的新手,并尝试使用split()但没有取得多大成功。我要么无法将第一列分开,要么在每一行的末尾都有一个尾随'\n'
。任何帮助将非常感激。提前谢谢。
答案 0 :(得分:0)
您可以尝试:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_fwf('file.dat')
plt.plot(df.iloc[:, 0], df.iloc[:,1])
plt.show()
您可以按照上面显示的方式进行绘图。希望这会有所帮助。
答案 1 :(得分:0)
你可以阅读和绘图如下:
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('xyz.dat', sep=' ', header=None, usecols=(1, 2, 3)).T
df.plot(lw=0.5)
plt.show()
这会给你输出:
您的3行包含非常相似的数据。
如果列数未知,您可以正常读取它并删除第一个CSV列(实际上是转置后的第一行):
df = pd.read_csv('xyz.dat', sep=' ', header=None).T.drop(0)
df.plot(lw=0.5)
plt.show()