pyplotを適切な時間帯にプロットするにはどうすればよいですか? 私はtzinfoオブジェクトを置くためのさまざまな場所を見ることができますが、これらのすべては何もしないか、または期待どおりにリモートで動作しません。matplotlib.pyplotのタイムゾーンで日付をプロットする
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グラフを作成するには、これをどのように変更できますか?
問題の[mcve]を入力するとよいでしょう。 – ImportanceOfBeingErnest
申し訳ありませんが、私はそれを明確にするために何を追加するのか分かりません。コードブロックにはすべてのものが含まれていますが、何もありません。それはUTCをプロットしています。私はESTで時間をプロットすることが欲しいです。含まれていないものの例が含まれています。 – user3896248
あらゆる種類のデバッグを駆動する主エンジンは再現性があります。今、私は上記の問題を再現できません。なぜなら、[mcve]が与えられていないからです。私。コードをコピーして実行して問題を確認することはできません。したがって、問題を特定するために特定のことをテストすることはできません。したがって、私はあなたを助けることができません。もちろん、あなたは幸運かもしれないし、彼の頭の上から何が起こっているのか知るためにパッケージを書いた1人の男を見つけるか、あなたはあまりにも多くの時間を持ってそのような例を書いている人を見つけるかもしれません。しかし、ほとんどの場合、[mcve]のない質問は、話題にならないように単に閉じられるか、決して答えられません。あなたの選択。 – ImportanceOfBeingErnest