1

誰かが私を助けてくれませんか。簡単なグラフを作成しようとしています。

set datafile separator ","
set xdata time   
set timefmt "%d/%m/%Y %H:%M:%S" 
set format x "%H:%M" 
set autoscale y
plot ["13:00":"14:00"] './data.csv' using 1:2 with lines

データ.csv:

26/10/2010 13:30:01,1

26/10/2010 13:30:12,2

26/10/2010 13:30:23,3

26/10/2010 13:30:34,4

エラーが表示されます:

line 6: all points y value undefined!

私はtimefmt設定のすべての方法を試しました!

どうもありがとう

4

2 に答える 2

7

問題は xrange の定義です。同じ形式の timefmt である必要があります (?time_axis を参照)。

以下は私のために働く

set datafile separator "," 
set xdata time
set timefmt "%d/%m/%Y %H:%M:%S" 
set format x "%H:%M" 
set autoscale y 
set xrange["26/10/2010 13:00:00":"26/10/2010 14:00:00"]
plot './data.csv' using 1:2 with lines

ああ、データの各行の間の空白行を取り除きました。

ファイルを編集して空白のデータを削除したくない場合は、gnuplot で awk を次のように使用できます。

plot "<awk '$0!~/^$/ {print $0}' ./data.csv" using 1:2 with lines

最後のコマンド。

編集:まだ問題がある場合の詳細情報(コメントを参照)

プロットするデータを取得するには、awk コマンドを使用する必要がありました。これは、データ内の空白行を削除するためでした。この方法で awk と gnuplot を組み合わせると、Linux システムで機能します。Windows での gnuplot については確信が持てません。特定のパイプ処理が行われていない可能性があります。その場合、gnuplot を使用する前に空白行を削除する必要があります。(これにはまだ awk を使用できますが、おそらく plot コマンドでは使用できませんか?)

Linux を使用していて上記が機能しない場合は、別の問題があります。gnuplot セッションに古いコマンドが保存されているのではないでしょうか? まったく同じことをしていることを確認するために、使用したシェル スクリプトを提供します (データに合わせて xrange を変更し、より適切なプロットを作成します。また、$ の代わりに \$ を認識します。そうしないと、シェルが $ を誤って解釈します)。サイン)。

わかりました: ファイル data.csv.sh を新しいフォルダーに作成しました(すでに data.csv または data.csv.png ファイルがある場合):

#!/bin/bash

echo "26/10/2010 13:30:01,1

26/10/2010 13:30:12,2

26/10/2010 13:30:23,3

26/10/2010 13:30:34,4" > "data.csv"


gnuplot<<EOF
set term png small
set output "data.csv.png"
set datafile separator "," 
set xdata time
set timefmt "%d/%m/%Y %H:%M:%S" 
set format x "%H:%M" 
set autoscale y 
set xrange["26/10/2010 13:30:00":"26/10/2010 13:31:00"]
plot "<awk '\$0!~/^\$/ {print \$0}' ./data.csv" using 1:2 with lines
set output
set term pop
EOF 

次に、端末で次のように入力しました。

chmod +wrx data.csv.sh && ./data.csv.sh

シェルスクリプトを実行可能にしてから実行します。

ファイル data.csv.png は次のようになります。 代替テキスト

ではごきげんよう

トム

于 2010-11-12T12:37:33.257 に答える