小编Sco*_*ott的帖子

Matplotlib plot_date即使使用自定义时区也能保持UTC时间

我正在使用matplotlib在python 2.6中根据时间戳绘制数据.我找到了plot_date()函数,效果很好!但是,时间都是UTC.我阅读了文档,其中说您可以将tz参数传递给函数以设置自定义时间序列.这似乎不起作用.即使在传递参数后,时间仍保留在UTC中.我尝试过几种方法也无济于事.

注意:我正在导入填充了纪元时间的CSV文件以生成X轴.所以,我正在使用epoch2num()从epoch转换为matplotlib格式.

样本来源:

import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import matplotlib.dates as mdates
from pytz import timezone

...

dates = mdates.epoch2num(dates) # Converting my list of dates from epochs
plt.plot_date(dates, data,fmt='-',tz="US/Eastern",xdate=True)
Run Code Online (Sandbox Code Playgroud)

该代码无法沿轴生成正确的时间戳.它虽然图形很好.

还尝试过:

plt.plot_date(dates,data,fmt='-',tz=timezone('US/Eastern'),xdate=True)
Run Code Online (Sandbox Code Playgroud)

与第一个示例相同的结果.一切都保留在UTC中.

对于笑脸,我在'dates'列表上运行了num2date()并打印输出.值输出为UTC.然后我将tz = timezone('US/Eastern')添加到num2date()调用,值输出在Eastern中,因为它们应该是.

我还尝试在调用plot_date之前将日期"预转换"到Eastern,然后在plot_date中省略tz =关键字,但值仍为UTC.

最后,我编辑了matplotlibrc文件并将#timezone UTC更改为#timezone US/Eastern,但仍然没有成功.

在UTC以外的图表中,我错过了什么?

python matplotlib

13
推荐指数
2
解决办法
8281
查看次数

标签 统计

matplotlib ×1

python ×1