2017-03-31 27 views
1

x軸(タイムスタンプをmatplotlib.dates.date2num()で変換)のあるmatplotlibグラフがあります。Matplotlib X軸ラベルを半分と1時間だけ表示する

私はこのような各ハーフとフル時間をマーク、ラベル、とグリッドを表示したい:10時、10時30分、11:00、...

私はこれらを使用するラベルの間隔をフォーマットするにはコード行:

問題は、データが完全なまたは半時間で開始しないことです。だから私が得るのは正しい間隔だけですが、各半分から一時間にずれています。私。 10時17分、10時47分、11時17分、...データの開始時によって異なります。どのようにこれを修正することができますか?

+0

軸の限界を設定できませんか? – Evert

+1

'MinuteLocator'の' byminute'引数は、次のように役立ちます: "毎分を分でマークする; byminuteはintまたはシーケンスにすることができます。デフォルトは毎分tick:byminute = range(60)"です。 '[0、30]'を試してみてください。 – languitar

+0

軸を制限すると、@Evertはグラフの一部をグラフから除外しませんでしたか?残念ながら、1時間半または半時間でデータ表示を開始することはできません。 – harbun

答えて

0

languitarが指摘しているように、byminute引数を使用するのが正しい方法です。

このコードは動作します:

ax.xaxis.set_major_locator(mdates.MinuteLocator(byminute=[0,30]) 

今半と完全な時間だけはラベルが表示されます。

私は当初byminuteをテストしたが、エラーが発生した、interval=30を削除しませんでした:

ValueError: Invalid rrule byxxx generates an empty set.

だから、同時に引数byminuteintervalを使用して動作しないととにかく必要ではありません。

0

あなただけのbyminute引数でMinuteLocatorを使用することができます。

mdates.MinuteLocator(byminute=[0,30]) 

これは、すべての完全な時間半にロケータを修正します。

関連する問題