12

GnuPlot では:

xticsを毎月1日に設定するには?

月あたりの秒数が異なるため、 set xtics は機能しません。

xmtics を設定する
月が年なしで表示され、月がどの年に属しているかが表示されないため、私には機能しません。

4

2 に答える 2

25

gnuplot は時間を驚くほどうまく処理しているように思えます。データは次の(または同様の)形式であると想定しています。

05/17/12    0.8188064359
05/18/12    0.97297057
05/21/12    0.9012782504

これをテストするために、乱数を 1 年半にわたって使用しました。

したがって、最初に gnuplot に x 座標が時間であり、それがどの形式で記述されているかを伝える必要があります。

set xdata time
set timefmt "%m/%d/%y"

これ以降、gnuplot はコマンドxticsxrangeコマンドを含むすべての範囲が指定された形式であると想定します。唯一の例外は、xtics秒単位の増分です。

set xrange ["05/01/12":"08/01/13"]
set xtics "01/01/12",2592000,"08/01/18"

ここで、各月の秒数は 1 日 (実際には 2 月の 2 日) 異なると主張するかもしれません。しかし、gnuplot の作成者はこれについても考えているようで、私たちの好みに合わせて問題を解決してくれました。つまり、上記により、毎月 1 日ごとにチックが発生することが保証されます。ここでは、xtics

set format x "%d %b %Y"

これにより、「2012 年 5 月 1 日」などになりplotます。この後、データ。ああ、x 軸で時間を使用する場合、gnuplot はコマンドで必要usingplotので、私が持っていたような些細なデータ ファイルでも、使用する必要がありました

plot 'data.txt' using 1:2

gnuplot バージョン 4.6 パッチレベル 0 を使用し、postscript ターミナルに出力しました。バージョンまたは端末で異なる経験がある場合は、コメントでお知らせください。

于 2012-12-14T01:24:35.387 に答える
4

set xtics秒数を 1 か月の平均秒数に設定すると、問題なく動作します。

平均年を 365.2425 日と仮定し、12 で割って 1 か月あたりの平均日数 (約 30.4) を求め、1 日あたりの時間数を掛けてから 1 時間あたりの秒数を掛けることで、これを計算しました。

365.2425 / 12 * 24 * 3600 = 2629746

データが年月と値としてフォーマットされていると仮定します。つまり、次のようになります。

2016-01 10000
2016-02 12000
2016-03 10500

次に、次のようなコマンドが必要になります。

set xdata time
set timefmt "%Y-%m"
set format x "%b/%y" # Or some other output format you prefer
set xtics "2016-01", 2629746, "2016-03"
plot "mydata.dat" using 1:2 with linespoints

xtics を月の倍数で設定する場合は、set xtics行に乗数を追加するだけです。たとえば、四半期ごとのマークを取得するには:

set xtics "2016-01", 3*2629746, "2016-12"

1 か月の日数を 30 または 31 と仮定すると、チャートのある時点で、月の xtics が欠落していることがわかりました。

于 2016-04-28T08:30:53.103 に答える