Matplotlib ignoring timezone

前端 未结 2 1408
北恋
北恋 2021-02-09 13:04

The following plot

import matplotlib
f= plt.figure(figsize=(12,4))
ax = f.add_subplot(111)
df.set_index(\'timestamp\')[\'values\'].plot(ax=ax)
ax.xaxis.set_majo         


        
相关标签:
2条回答
  • 2021-02-09 13:55

    If you don't want to change rcParams (which seems to be an easy fix), then you can pass the timezone to mdates.DateFormatter.

    from dateutil import tz
    mdates.DateFormatter('%H:%M', tz=tz.gettz('Europe/Berlin'))
    

    The problem is that mdates.DateFormatter completely ignores everything you set in like plot_date or xaxis_date or whatever you use.

    0 讨论(0)
  • 2021-02-09 14:00

    I think you can have the desired functionality by setting the timezone in rcParams:

    import matplotlib
    matplotlib.rcParams['timezone'] = 'US/Eastern'
    

    The formatter is timezone aware and will convert the timestamp to your rcParams timezone (which is probably at UTC), while if you don't format it, it will just take the timestamp and ignore the timezone. If I understand correctly.

    More reading:

    • Matplotlib dates
    • A related answer
    0 讨论(0)
提交回复
热议问题