我的数据格式如下:
87.2224 -0.0453
87.1561 -0.1580
>
90.8429 -0.1164
90.3849 -0.1020
90.2667 -0.1246
>
87.1002 -0.0553
87.1561 -0.1580
>
其中列是一行的x,y坐标,而每个>分隔新行。
如何使用numpy(或其他Python库)正确读取此内容,并使用matplotlib对其进行绘制,以便可以绘制三行?
或者,在用Python读取数据之前,我可以做一些格式化数据的事情吗?
谢谢! :)
答案 0 :(得分:1)
下面应该这样做:
x=[]
y=[]
with open("data.txt") as file:
for line in file:
if ">" not in line:
coords = line.split()
# print(coords)
x.append(float(coords[0]))
y.append(float(coords[1]))
答案 1 :(得分:1)
只需将np.loadtxt
指定为注释,即可使用>
读取数据。这将忽略这些行。您以后可以将这些数组重塑为两位的位/块以绘制单独的线。
import numpy as np
x, y = np.loadtxt('filename.txt', unpack=True, comments='>')
# (array([87.2224, 87.1561, 90.3849, 90.2667, 87.1002, 87.1561]),
# array([-0.0453, -0.158 , -0.102 , -0.1246, -0.0553, -0.158 ]))
答案 2 :(得分:1)
@pdrersin给了我足够的认识:
x=[]
y=[]
with open("data.txt") as file:
for line in file:
if ">" not in line:
coords = line.split()
x.append(float(coords[0]))
y.append(float(coords[1]))
if ">" in line:
plt.plot(x,y)
x=[]
y=[]
这将单独绘制每条线而不连接其末端。