1

浮動小数点時間列がゼロから大きな値に増加するデータファイルがあります。各時点はデータポイントに関連付けられています。

時点はまた、月に対応するため、次のようになります。0=Jan, 1=Feb, ..., 11=Dec, 12=Jan, 13=Feb, ...

の代わりにX軸に月の名前が表示されるように、このデータをプロットしたいと思います0-*

これを行う方法はありますか?

役立つ場合は、データに月の名前を事前に生成することもできます。

役立つ可能性のある月の名前を含むサンプルデータを次に示します。

#時間月データ
0.01 Jan 0
0.055 Jan 0
0.2575 Jan 0
1.16872月0日
1.98892月0日
3.10374月0.00065915
3.24274月0.0035198
4.06565月0.03785
4.21345月0.041977
5.00326月0.049293
6.0247月0.080957
7.03178月0.34284
7.98478月0.80902
8.00819月0.8149
8.97499月0.94009
9.031610月0.94389
9.989310月0.97967
10.05811月0.97967
10.29511月0.97967
11.12512月0.97967
13.1512月0.97967
13.6962月0.97967
14.1243月0.9797
15.1194月0.97733
4

1 に答える 1

3

私の最初の考えは、何か卑劣なものを試してみることでしたtimefmtが、残念ながら、すべての月が同じ長さではないため、それは機能しません。したがって、ここでは実際には線形スケールがありません。私はあなたが本当にできる最善のことは手動でチックを指定することだと思います:

set xtics ("Jan" 0.5, "Feb" 1.5, "Mar" 2.5, ...)

これにより、目盛りが範囲の中央にくるように調整されます。それが望ましくない場合は、代わりに整数値を使用してください。

set xtics ("Jan" 0, "Feb" 1, "Mar" 2, ...)

もちろん、gnuplot4.6で導入されたfordoループを使用して、これをもう少し柔軟にすることができます。

MONTHS="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"
set xtics ( "Jan" 0.5 )  #first one can't have `add`.
do for [i=1:15] {
    which_month = word(MONTHS,i%12+1)
    pos = i+0.5
    set xtics add ( which_month pos )
}
plot 'test.dat' u 1:3

stats次のコマンドを使用して、ループの上限を取得することもできますSTATS_max-(おそらく使用するN = int(STATS_max+1)か、同様のもの):

stats 'test.dat' u 1 nooutput #Runs stats on the file, generates STATS_max

gnuplot4.4でも機能する省略表記もあります。

MONTHS="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"
set xtics ( "Jan" 0.5 )
set for [i=1:15] xtics add ( word(MONTHS,i%12+1) i+0.5 )
plot 'test.dat' u 1:3
于 2013-02-13T06:06:35.637 に答える