【gnuplot】multiplotを使って散布図の変数を変えながら描画

 

元データがこのようだったとき、v1,v2,v3のすべての組み合わせで散布図を描画したい。

mp.txt

v1, v2, v3

1,2,1

2,4,4

3,6,9

 

gnuplot上での入力】

V=3
set multiplot layout V,V rowsfirst downwards
set datafile separator ","
do for [a=1:V]{do for [b=1:V] {plot 'mp.txt' using a:b }}

 

1行目のcolumnsfirstは縦にグラフを並べていくという意味で、横に並べる場合はrowsfirst。

downwardsは上から下に並べるということで、逆の場合はupwards。

Vは変数の数。(今は3)

2行目は、カンマ区切りデータという意味。

3行目は、aとbに関するループでa列とb列の散布図を描画するという意味。

出力は下のようになる。

(unset keyでタイトルを削除した)

f:id:XM_qma:20161027114435p:plain

【gnuplot】データに応じて点の種類を変えたいとき

自分用メモ。

データの特定の列に応じて点の種類を変えたいときのコマンド。

 3列目の値に応じて、1列目、2列目のプロットに用いる点の種類が変更される。

 

set terminal png
set output 'xxx.png'
set datafile separator ","
plot 'xxx.txt' u 1:($3==0 ? $2:1/0) pt 2, 'xxx.txt' u 1:($3==1 ? $2:1/0) pt 3
exit

 

太線部分のようにすれば、3列目が0の時は点の種類が2となり、3列目が1の時は点の種類が3となる。(参考