2016-10-14 7 views
-1

2点のタプルの間のプロットに線をプロットしようとしています。pyplotの開始点と終了点のマーカーの色が異なります

start_points = [(54.6, 35.2), (55.5, 32.7), (66.5, 23.7), (75.5, 47.8), (89.3, 19.7)] 
end_points = [(38.9, 44.3), (46.7, 52.2), (72.0, 1.4), (62.3, 18.9), (80.8, 26.2)] 

だから、私は何をしようとしていること(55.5、32.7から(38.9、44.3)、別の行に(54.6、35.2)からのラインのように同じインデックスのポイント間の線を引くです:私は、次の配列を持っています)〜(46.7,52.2)などとなる。

私はzip(start_points[:5], end_points[:5])をプロットすることでこれを達成しましたが、ラインの開始点と終了点に異なるマーカースタイルが必要です。 start_pointsを緑色の円にし、end_pointsを青色のxにします。これは可能ですか?

+0

'pass_start'とは何ですか?どのように結果をプロットしていますか?プロットを取得し、ペイント/類似のプログラムで画像を編集するために使用しているコードを表示した場合は、代わりに取得したいものを表示するだけであれば、ずっと簡単です。 – Bakuriu

+0

@Bakuriu私はそれを編集しました。申し訳ありませんが、元の変数名は変更しましたが、zip部分の変数名を変更するのを忘れました。 – nope

答えて

1

まず、線(plt.plot)をプロットし、散布図(plt.scatter)を使用してマーカーをプロットします。

import numpy as np 
from matplotlib import pyplot as plt 

start_points = [(54.6, 35.2), (55.5, 32.7), (66.5, 23.7), (75.5, 47.8), (89.3, 19.7)] 
end_points = [(38.9, 44.3), (46.7, 52.2), (72.0, 1.4), (62.3, 18.9), (80.8, 26.2)] 

for line in zip(start_points, end_points): 
    line = np.array(line) 
    plt.plot(line[:, 0], line[:, 1], color='black', zorder=1) 
    plt.scatter(line[0, 0], line[0, 1], marker='o', color='green', zorder=2) 
    plt.scatter(line[1, 0], line[1, 1], marker='x', color='red', zorder=2) 
+0

ああ、それはたくさんの意味がある。どうもありがとうございました。 – nope

関連する問題