gpt4 book ai didi

python - Matplotlib plot_date 在 UTC 中保持时间,即使使用自定义时区

转载 作者:太空狗 更新时间:2023-10-29 17:32:12 27 4
gpt4 key购买 nike

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

注意事项:我正在导入一个充满纪元时间的 CSV 文件来生成 X 轴。因此,我正在使用 epoch2num() 从纪元格式转换为 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)

该代码无法沿轴生成正确的时间戳。不过它的图形很好。

还试过:

plt.plot_date(dates,data,fmt='-',tz=timezone('US/Eastern'),xdate=True)

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

为了笑,我在“日期”列表上运行了 num2date() 并打印了输出。值输出为 UTC。然后,我将 tz=timezone('US/Eastern') 添加到 num2date() 调用中,并且值输出是东部的,因为它们应该是。

我还尝试在调用 plot_date 之前将日期“预转换”为东部日期,然后在 plot_date 中省略 tz= 关键字,但值仍然是 UTC。

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

要让这些日期在 UTC 之外绘制图表,我缺少什么?

最佳答案

我也在 Matplotlib 1.0.1 中看到了这种行为。

我在调试器中查看了它,恕我直言,参数 tz 被忽略了。该错误位于 matplotlib.axes.Axes.xaxis_date(文件“axes.py”,第 2679 行)中。

我为此提交了错误报告: https://sourceforge.net/tracker/index.php?func=detail&aid=3176823&group_id=80706&atid=560720

关于python - Matplotlib plot_date 在 UTC 中保持时间,即使使用自定义时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4485607/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com