0

そのため、gnuplot を使用して時間の経過に伴うデータをプロットしています。下の軸を時間単位にしたいと考えています。x 軸には 4 ~ 5 時間のマークしかないはずですが、データが非常に分散しているため、gnuplot は各ポイントを複製したいと考えているようです (おそらく、ギャップを埋めるために数分のデータが必要です)。

したがって、x 軸では次のようになります。

時間: 0 0 1 1 2 2 3 3 4 4

しかし、次のようになります。

時間: 0 1 2 3 4

x 軸の値を複製しないように反転できる設定はありますか?

.plt ファイルの内容 (短縮) は次のとおりです。

clear
print ""
set terminal pngcairo transparent enhanced font "arial,25"             -    -    -   fontscale 1.0 size 1920, 1080
set key outside bottom center box title "spiders in my house over time" enhanced
set key maxrows 4
set key font ",25" spacing 1 samplen 2.9 width 2 height 1
set xlabel "Time (hours)" offset -35 font ",30"
set ylabel "% Average number of spiders (100 means house is filled)" font ",30"

set output "spiders.png"
set title "Average spiders in my house" font ",35"
set datafile separator ","
set xdata time
set timefmt "%Y-%m-%d %H:%M:%S"
set xtics format "%H" font ",25"
set ytics font ",25"

set style line 1 lt 1 lc rgb "red" lw 4
show style line
starting_time = 8631

plot "spider_data.csv" using (timecolumn(1)-starting_time):2 every ::3 ls 1 t "SPIDERS AHHH" with lines

ここで、set xtics format "%H" font ",25"「set xtics format "%H:%M" font ",25"」に変更すると、複製が停止しますが、時間ティックのみが必要な問題は実際には解決されません。

.csv ファイルにはtime, val形式があります。

4

3 に答える 3

2

xticsを適切に設定する必要があります。デフォルト設定では、合計タイムスパンが 4 時間未満の場合、目盛りの解像度は 1 時間未満ですが、設定により表示できませんset xtics format "%H"

xtics増分は秒単位で設定されます。フルタイムでのみティックを表示するには、 を使用しますset xtics 60*60

これを次の例に示します。

set timefmt "%Y-%m-%d %H:%M:%S"
set xdata time
set xtics format "%H"

set multiplot layout 2,1
plot 'data.txt' using 1:3 with lines

set xtics 60*60
replot
unset multiplot

であることdata.txtで:

2013-08-25 18:45:11 100
2013-08-25 19:11:23 200
2013-08-25 20:00:32 400
2013-08-25 21:00:32 300

結果は次のとおりです。

ここに画像の説明を入力

このような最小限のデータ ファイルと間違った結果画像を提供していればよかったのに。

于 2013-09-16T19:37:49.397 に答える
0

細かい情報を追加するだけで、これを「解決」しました。私が望んでいたものではありませんが、それはうまくいきます。

set xtics format "%H:%M"
于 2013-09-16T19:20:40.370 に答える