2017-10-11 43 views
0

pyplotを適切な時間帯にプロットするにはどうすればよいですか? 私はtzinfoオブジェクトを置くためのさまざまな場所を見ることができますが、これらのすべては何もしないか、または期待どおりにリモートで動作しません。matplotlib.pyplotのタイムゾーンで日付をプロットする

First output 実際にある:私は

import pytz 
from datetime import datetime 
import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 
estZone=pytz.timezone('US/Eastern') 

records=[['10/10/17 12:00','100'],['11/10/17 12:00','150'],['12/10/17 12:00','200']] 

def parseDT(stampString): 
    return datetime.strptime(stampString,'%d/%m/%y %H:%M') 

def plotGraph(): 
    xvalues=[] 
    yvalues=[] 
    for r in records: 
     rdatetime=(parseDT(r[0])) #parseDT just returns naive DT 
     rdatetime=pytz.utc.localize(rdatetime) 
     rdatetime=rdatetime.astimezone(tz=estZone) 
     xvalues.append(rdatetime) 
     yvalues.append(int(r[1])) 

    fig,ax=plt.subplots(figsize=(8,3)) 
    plt.plot_date(xvalues,yvalues,ls='solid',lw=1.5,aa=True,marker='None',color='g') 
    dayFmt=mdates.DateFormatter('%a-%b-%d') 
    hrFmt=mdates.DateFormatter('%H:00') 
    ax.xaxis.set_major_formatter(dayFmt) 
    ax.xaxis.set_major_locator(mdates.DayLocator()) 
    ax.xaxis.set_minor_locator(mdates.HourLocator(byhour=[6,12,18])) 
    ax.xaxis.set_minor_formatter(hrFmt) 
    plt.grid(b=True, which='both',linestyle='dotted') 
    plt.show() 

plotGraph() 

これは、生産(マイナスいくつかのフォーマット)この数値を[、番号をプロットするためにUTCで素朴なタイムスタンプ]各レコードがあることで、CSVファイルからのレコードのリストを読み込みますそれでもUTC。私がastimezone(tz=estZone)を省略した場合の結果と同じですが、その部分が確実に機能していることが確認されています。

tz=estZoneからplt.plot_dateに渡すと、図は同じです。変更はありません。 UTCタイムスタンプからESTグラフを作成するには、これをどのように変更できますか?

+0

問題の[mcve]を入力するとよいでしょう。 – ImportanceOfBeingErnest

+0

申し訳ありませんが、私はそれを明確にするために何を追加するのか分かりません。コードブロックにはすべてのものが含まれていますが、何もありません。それはUTCをプロットしています。私はESTで時間をプロットすることが欲しいです。含まれていないものの例が含まれています。 – user3896248

+0

あらゆる種類のデバッグを駆動する主エンジンは再現性があります。今、私は上記の問題を再現できません。なぜなら、[mcve]が与えられていないからです。私。コードをコピーして実行して問題を確認することはできません。したがって、問題を特定するために特定のことをテストすることはできません。したがって、私はあなたを助けることができません。もちろん、あなたは幸運かもしれないし、彼の頭の上から何が起こっているのか知るためにパッケージを書いた1人の男を見つけるか、あなたはあまりにも多くの時間を持ってそのような例を書いている人を見つけるかもしれません。しかし、ほとんどの場合、[mcve]のない質問は、話題にならないように単に閉じられるか、決して答えられません。あなたの選択。 – ImportanceOfBeingErnest

答えて

0

私は以前にx軸ラベルのDateFormattersにタイムゾーンを渡そうとしましたが、タイムゾーン修飾子はロケータが配置された後に適用されるように見え、すべてのラベルは各真夜中または指定時間の4時間後に表示されます。私はロケータがこれに対抗するためのパラメータとしてタイムゾーンを必要としていることに気付きました。それはそれをするだろう。

関連する問題