在 Matplotlib 中修正轨迹

Correcting Trajectory Tracks in Matplotlib

我 运行 遇到了一些绘图点在绘图后连接回第一个绘图点的问题。在 matplotlib 中绘制轨迹点后,我需要找到一种方法来关闭或清除轨迹点,以及如何使每条线都有自己的颜色。

来自文本文件的示例数据:

CMCI,36,16.9,-68.1
AVNI,0,15.7,-60.1
AVNI,12,16.1,-62.8
AVNI,24,16.5,-65.5
AVNI,36,17,-68.5
AVNI,48,17.6,-71.5
BAMD,12,16.3,-62.1
BAMM,168,23.1,-87.9
BAMS,84,20.3,-79.5
BAMS,96,20.6,-81.6
BAMS,108,21.1,-83.9
BAMS,120,21.5,-85.9
BAMS,132,22,-87.9
CLIP,12,16,-61.6
CLIP,24,16.4,-63.4
CLIP,36,17.1,-65.1
CLIP,48,18,-66.9
CLIP,72,20.2,-70

文本文件中的最后两列是 lat/lon。

代码:

data = np.genfromtxt("/home/.../.../.../all", delimiter=',', skip_header=True)

model = data[:,0]
fhr = data[:,1]
lats = data[:,2]
lons = data[:,3]

x,y = m(lons,lats)

plt.plot(x,y,'ro-')
plt.show()

您可以单独绘制每个轨道,使用您的 model 列索引 xy。您需要扩展 models 列表以在您的数据文件中包含所有可能的模型。

data = np.genfromtxt("/home/.../.../.../all", delimiter=',', skip_header=True)

model = data[:,0]
fhr = data[:,1]
lats = data[:,2]
lons = data[:,3]

models = ['ANVI', 'BAMS', 'CLIP']
cols = ['r','g','b']

for i in range(len(models)):
    plt.plot(x[model==models[i]],y[model==models[i]],
             marker='o',linestyle='-',color=cols[i])
plt.show()