2016-04-29 11 views
1

gnuplotでカスタム関数で時間ベースのチックラベルをフォーマットする可能性はありますか?私は平日の英語の短い名前を印刷します。この例では%aカスタム日付/時刻文字列でGnuplotでticラベルをフォーマットするには?

set format x '%Y-%m-%d, %a' 

のような通常の書式コードを使用することができることを知っています。だから私はドイツ語に名前を変換できるマッピング関数を書いた:

dow(d) = \ 
    (d == 0) ? 'So' : \ 
    (d == 1) ? 'Mo' : \ 
    (d == 2) ? 'Di' : \ 
    (d == 3) ? 'Mi' : \ 
    (d == 4) ? 'Do' : \ 
    (d == 5) ? 'Fr' : \ 
    'Sa' 

私はこの関数をどのように呼び出すことができますか?正しいフォーマット文字列は%wだろうが、この:それは実際に私の関数に文字列「%wを」合格しようとするため、

set format x '%Y-%m-%d, ' . dow('%w') 

は、動作しません。 tm_wday(t)(引数tはUnixのタイムスタンプになります)、曜日の0から始まる番号(私のマッピング関数が必要とする)を返すことも知っています。しかし、set format xに、現在のtic値(実際には内部では、set xdata timeを設定するとUnixのタイムスタンプ)をこの関数の引数として使用するように指示しますか?

最新のgnuplotトランクバージョンを使用していますが、これは関連性があります(まだドキュメント化されていなくても、現在存在する機能を使用できます)。

+0

'set locale" de_DE.utf8 "を試してください。形式x '%Y-%m-%d、%w' 'を設定すると、関数の呼び出しはサポートされません。 – Christoph

+0

@Christoph私はWindows上にあるので、POSIXのロケールは利用できません。しかし、 'show locales'は' LC_TIME German_Germany.1252'を与えますが、これはドイツの日付名を与えるようには見えません。 –

+0

@Christoph Okしかし 'set locale 'German_Germany.1252''を明示的に設定するのは、デフォルトで既に設定されているように見えますが、これを答えとして書くと、私はそれを受け入れます。 :) –

答えて

2

localeの設定では、チックラベルの数字と日付のフォーマット方法が決まります。

set locale 'de_DE.utf8' 

または

set locale 'German_Germany.1252' 

お使いのシステムによって異なります。

関連する問題