数字の値のみを含む.csvファイルがあります。私は別々のプロットとして各行をプロットし、y軸上の値とx値としての値の位置を使用したい。 すなわち:GNUplotで行単位で.csvデータをプロットする
10,2,5,6 9,7,8,6
外部にデータを再配置することなく、これを行うにはどのような方法?
数字の値のみを含む.csvファイルがあります。私は別々のプロットとして各行をプロットし、y軸上の値とx値としての値の位置を使用したい。 すなわち:GNUplotで行単位で.csvデータをプロットする
10,2,5,6 9,7,8,6
外部にデータを再配置することなく、これを行うにはどのような方法?
ここでは非常にわかりにくい一連のコマンドがあります。私はそれが推奨されることを躊躇します。なぜなら、それは難読化されていない点では明らかではなく、空のフィールドや欠落しているデータに関しては壊れやすいからです。興味がある人のために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
私が見たことから、gnuplotはファイルを列ごとにプロットするために作られています。したがって、おそらくデータを並べ替える必要があります。 このトピックの内容は次のとおりです。 how plot per rows in gnuplot
が必要ですが、これは私が終わった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
感謝を!
どのようにして行の最後の値を省略しますか? – loki