Python 正确读取/绘制由'分隔的数据&燃气轮机';
我的数据格式如下:Python 正确读取/绘制由'分隔的数据&燃气轮机';,python,numpy,matplotlib,Python,Numpy,Matplotlib,我的数据格式如下: 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读取数据之
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读取数据之前,我是否可以做些什么来格式化数据,使之更容易
谢谢!:) 以下各项应能做到这一点:
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]))
通过将
指定为注释,您可以简单地使用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 ]))
@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=[]
这将单独绘制每一行,而不连接其两端。您的数据是一个字符串还是存储在文件中?它存储在文本文件中您知道如何打开文件(基本Python)并逐行读取吗?以及如何将行拆分为字符串?你不需要一个特殊的库来读取文本文件。谢谢——我应该补充一点,每个片段都有不同的点数。不是每条线都是两点。我已经相应地更新了这个问题