テキストファイルの値からグラフをプロットする方法は?テキストファイルは次のようになります。
location count1 count2
HZ 100 193
ES 514 289
FP 70 137
BH 31 187
これらの値をシェルスクリプトでグラフとしてプロットします。ロケーション列のx軸の値と、count1およびcount2列のy軸の値。
同じ入力ファイル(ex.tsv)を使用し、詳細をより適切に制御するためのgnuplotスクリプトを作成する
set style data histogram
set style fill solid border -1
plot for [i=2:3] '/dev/stdin' using i:xtic(1) title col
そしてデータをgnuploting:
gnuplot -p ex.gnu < ex.tsv
対応するヒストグラムが表示されます。
PNGファイルを作成するには(アップロードしてSOで表示するには)、さらに2行追加します。
set terminal pngcairo enhanced font "arial,10" fontscale 1.0 size 600, 400
set output 'out.png'
set style data histogram
set style fill solid border -1
plot for [i=2:3] '/dev/stdin' using i:xtic(1) title col
gnuplotv5.0の作業ソリューション:
入力データファイルloc.dat
:
location count1 count2
HZ 100 193
ES 514 289
FP 70 137
BH 31 187
gnuplotスクリプトlocations.plt
:
#!/usr/bin/gnuplot -persist
set title "Location data"
set xlabel "location"
set ylabel "count"
set grid
plot "loc.dat" u (column(0)):2:xtic(1) w l title "","loc.dat" u (column(0)):3:xtic(1) w l title ""
set title "Location data"
-メインプロットタイトル
set xlabel "location"
-x
軸のラベルを設定
set ylabel "count"
-y
軸のラベルを設定
set grid
-グリッドをプロットに追加
(column(0)):2:xtic(1)
-列の範囲、(column(0))
-入力ファイルの1列目には数値以外の値があるため、gnuplotは1列目に数値のみを期待するため、1列目の数値を模倣する必要があります
w l
-線ありを意味し、すべてのデータポイントを結合します線あり
インタラクティブな起動:
$ gnuplot
gnuplot> load "locations.plt"
レンダリング結果: