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


10

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

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

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


明白にplot "/tmp/temp.txt"失敗しBad data on line 1 of file /tmp/temp.txtます。行番号/列ヘッダーのない、番号のみのバージョンのファイルを作成する必要があるだけかもしれません。または、gnumericなどを使用します。
バリーカーター2017

回答:


9

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

ここに画像の説明を入力してください


7

gnuplot v5.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))-入力ファイルの最初の列には数値以外の値が含まれているため、gnuplotは数値のみを期待するため、数値の最初の列を模倣する必要があります

  • w l- すべてのデータポイントを線で結合する、線ありを意味ます


インタラクティブな起動:

$ gnuplot
gnuplot> load "locations.plt"

レンダリング結果:

ここに画像の説明を入力してください


ちょうど言及したいのですがgnuplot> load "locations.plt"、gnuplotがそれを要求するコマンドのlocation.pltの周りの引用符load locations.pltは機能せず、忘れると「内部エラー:STRING演算子が未定義または非STRING変数に適用されます」と表示されます。
jrh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.