web-dev-qa-db-ja.com

gnuplotを使用してテキストファイルの値からグラフをプロットする方法

テキストファイルの値からグラフをプロットする方法は?テキストファイルは次のようになります。

location  count1    count2
HZ        100        193
ES        514        289
FP        70         137
BH        31         187

これらの値をシェルスクリプトでグラフとしてプロットします。ロケーション列のx軸の値と、count1およびcount2列のy軸の値。

9
manu

同じ入力ファイル(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

enter image description here

9
JJoao

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"

レンダリング結果:

enter image description here

7
RomanPerekhrest