2017-04-12 13 views
0

数字の値のみを含む.csvファイルがあります。私は別々のプロットとして各行をプロットし、y軸上の値とx値としての値の位置を使用したい。 すなわち:GNUplotで行単位で.csvデータをプロットする

10,2,5,6 9,7,8,6

外部にデータを再配置することなく、これを行うにはどのような方法?

答えて

0

ここでは非常にわかりにくい一連のコマンドがあります。私はそれが推奨されることを躊躇します。なぜなら、それは難読化されていない点では明らかではなく、空のフィールドや欠落しているデータに関しては壊れやすいからです。興味がある人のためにgnuplotのバージョン5.

# Specify that this is a *.csv file 
set datafile separator "," 
# This command will plot value as a function of column for row n 
plot 'rowdata' matrix using 1:0 every :::n::n with lp 
# This command will do the same for each row in the file 
plot for [col=1:*] 'rowdata' matrix using 1:0 every :::col::col with lp 
+0

どのようにして行の最後の値を省略しますか? – loki

0

私が見たことから、g​​nuplotはファイルを列ごとにプロットするために作られています。したがって、おそらくデータを並べ替える必要があります。 このトピックの内容は次のとおりです。 how plot per rows in gnuplot

0

が必要ですが、これは私が終わった2つのスクリプトです:gnuplotのを使用してプロットの

アニメイトシリーズは(開始時と終了時に停止):

unset key 
set datafile separator "," 
stats "radii.csv" every ::1::1 using (time = $203) name "R" nooutput 
set title sprintf("Time = %d",time) 
stats "measureUnbound.csv" matrix every :::0:201:0 name "mU" nooutput 
ubMin = 1.*mU_max 
set yrange [0:40] 
pl "radii.csv" matrix u 1:0 every :::1:201:1 w l \ 
,"radii.csv" matrix u 1:0 every :::0:201:0 w l \ 
,"measureUnbound.csv" matrix u 1:($3/ubMin*19.5) every :::0:201:0 w i 
pause -1 
do for [col=1:19000] { \ 
unset yrange 
stats "radii.csv" every ::(col + 1)::(col + 1) using (time = $203) name "R" nooutput 
set title sprintf("Time = %d",time) 
stats "measureUnbound.csv" matrix every :::col:201:col name "mU" nooutput 
ubMin = 1.*mU_max 
set yrange [0:40] 
pl "radii.csv" matrix u 1:0 every :::(col + 1):201:(col + 1) w l \ 
,"radii.csv" matrix u 1:0 every :::0:201:0 w l \ 
,"measureUnbound.csv" matrix u 1:($3/ubMin*19.5) every :::col:201:col w i 
pause 0.1 
} 
pause -1 

アニメーションGIFを作成します。あなたの助けのための

set term gif animate 
set output "radii.gif" 
unset key 
set datafile separator "," 
do for [col=0:19000] { \ 
unset yrange 
stats "radii.csv" every ::(col + 1)::(col + 1) using (time = $203) name "R" nooutput 
set title sprintf("Time = %d",time) 
stats "measureUnbound.csv" matrix every :::col:201:col name "mU" nooutput 
ubMin = 1.*mU_max 
set yrange [0:40] 
pl "radii.csv" matrix u 1:0 every :::(col + 1):201:(col + 1) w l \ 
,"radii.csv" matrix u 1:0 every :::0:201:0 w l \ 
,"measureUnbound.csv" matrix u 1:($3/ubMin*19.5) every :::col:201:col w i 
} 
set output 

感謝を!

Resulting gif

関連する問題