2

次の stmt を使用して、csv ファイルをリストにインポートしました。

data1 = Take[Import["D:\\_reports\\optim_5_60_b_2.csv", "CSV"],   5]

これにより、次のことが得られます。

{{178, 8, 9, 1}, {152, 2, 8, 1}, {378, 8, 9, 2},
 {343, 3, 7.5`, 2}, {143, 3, 7.5`, 1}}

x 軸が最初のフィールドに基づくプロットを作成したいと思います。

178,152,378,343,143,373,743,352

そして、プロットは後続のフィールドごとに線を作成するため、2 番目のフィールドは次のようになります。

8,2,8,3,3,3,3,2

これは y 軸の最初の行になり、他の y 軸の値は同じ方法でプロットされます。最初の y プロットを赤で、2 番目を青で、3 番目を緑でプロットしたいと思います。

4

3 に答える 3

2

そして代替バージョン:

data = {{178, 8, 9, 1}, {152, 2, 8, 1}, {378, 8, 9, 2},
   {343, 3, 7.5, 2}, {143, 3, 7.5, 1}};

x = data[[All, 1]];

ListLinePlot[
 Transpose[
  Sort[MapThread[Function[xpt, {xpt, #} & /@ #2][#1] &,
    {x, Rest /@ data}]]], PlotStyle -> {Red, Blue, Green},
 PlotMarkers -> {Automatic, 10}, AxesOrigin -> {Min@x, Automatic}]

ここに画像の説明を入力

同様に、しかし読みやすい:

ListLinePlot[
 Transpose[
  Sort[Table[Map[{data[[i, 1]], #} &, Rest[data[[i]]]],
    {i, Length[data]}]]], PlotStyle -> {Red, Blue, Green},
 PlotMarkers -> {Automatic, 10}, AxesOrigin -> {Min@x, Automatic}]
于 2012-08-28T14:09:35.630 に答える
1

できるよ :

data1 = {{178, 8, 9, 1}, {152, 2, 8, 1}, {378, 8, 9, 2}, {343, 3, 7.5,
2}, {143, 3, 7.5, 1}};

tobeplotted =  With[{LocalX = data1[[All, 1]]}, 
   Transpose[{LocalX, #}] & /@ Transpose[data1[[All, 2 ;;]]]]

ListPlot[tobeplotted, PlotStyle -> {Red, Blue, Green},  PlotMarkers -> {Automatic, 10}]

プロット

于 2012-08-27T16:32:37.210 に答える
0

私はこれを提案します:

dat = {{178, 8, 9, 1}, {152, 2, 8, 1}, {378, 8, 9, 2},
       {343, 3, 7.5`, 2}, {143, 3, 7.5`, 1}};

ListLinePlot[
 Thread[Thread@{#, {##2}} & @@@ Sort@dat],
 PlotStyle -> {Red, Blue, Green}
]

Mathematica グラフィックス

于 2012-09-15T12:47:13.147 に答える