そのようなものとして、毎日に関連付けられた値を持っています:
120530 70.1
120531 69.0
120601 69.2
120602 69.5
# and so on for 200 lines
このデータを折れ線でgnuplotにプロットすると、データポイントは適切に接続されます。残念ながら、1週間を超える場所ではデータポイントが失われる可能性があります。 gnuplotはこれらの間隔で長い線を引きます。どうすればgnuplotが連続した日にのみポイントを接続するようにできますか?
データの前処理を必要とするソリューションは、スクリプトで既に平滑化しているので問題ありません。
これが私が使うものです:
set xdata time
set timefmt "%y%m%d"
plot "vikt_ma.txt" using 1:2 with lines title "first line", \\
"" using 1:3 with lines title "second line"
例:
データがない場所に空のレコード(空白行)を挿入します。 docs から:
単一の空白レコードは、プロットの不連続を示します。空白のレコードで区切られたポイントを結ぶ線はありません(線のスタイルでプロットされている場合)。
欠落データポイントの値として数値ではない任意の文字列を使用するか、set datafile missing
コマンドを使用して欠落データ文字列を明示的に指定できます。
次に、
plot "vikt_ma.txt" using 1:($2) with lines title "first line"
その場合、Gnuplotはギャップを残します。
また、x値間の距離がしきい値を超えたときにギャップを自動的に作成するために、次のようなこともできます。
previous=1
current=1
shift(x) = (previous=current, current=x)
yornothing(x,y) = ( shift(x), abs(x-previous)<7200?y:sqrt(0/0))
plot "file.dat" using 1:(yornothing($1,$2)) with lines
「前」と「現在」の初期値、およびしきい値(上記の例では「7200」)を調整する必要があります。
関数「yornothing」は、関数「shift」を使用して、xの1つ前の値を格納します。 yornothingが呼び出されるたびに、xとその前の値との差の絶対値がしきい値を超えているかどうかに応じて、yの値または "0/0"が返されます。
値0/0はgnuplotにその点を無視するように伝えます。