web-dev-qa-db-ja.com

2つのリストを組み合わせて座標ペアをプロットする方法は?

X-data(テキストファイルから)をlist1に読み込み、y-dataを同様にlist2に読み込みました。

list1 = { 0.0,    0.172,  0.266, ..}
list2 = {-5.605, -5.970, -6.505, ..} 

ポイント{0.0、-5.605}、{0.172、-5.970}、{0.266、-6.505}、...をプロットするために2つのリストを組み合わせるにはどうすればよいですか。

18
user2375856

Pinguin Dirkの提案が気に入らない場合は、

Transpose[{list1,list2}]
19

さらに別の..

MapThread[ {#1, #2} & , {list1, list2}]

または、長さが等しくないリストを適切に処理する場合:

MapThread[ {#1, #2} &, Take[#, All, Min @@ Length /@ #] &@{list1, list2} ]
7
agentp

これは、2つのベクトルをペアにする再利用可能な関数を作成する別の答えです。この関数は、最短のベクトルの長さにわたってマップする純粋関数を使用してペアを作成します。

    list1 = {1, 2, 3, 4, 5}; 
    list2 = {13, 18, 20, 18, 13};
    pairUp[xValues_ , yValues_] := ({xValues[[#]], yValues[[#]]}) & /@ 
       Range[Min[Length[xValues], Length[yValues]]];

    pairUp[list1, list2]
    (*
      {{1, 13}, {2, 18}, {3, 20}, {4, 18}, {5, 13}}
    *)

お役に立てれば、

エドマンド

PS:Mathematicaは初めてで、時々ここでいくつかの質問に答えようとすることで私の理解を深めたいと思っています。

2
Edmund