Sco*_*ott 13 python matplotlib
我正在使用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以外的图表中,我错过了什么?
我在Matplotlib 1.0.1中也看到了这种行为.
我在调试器和IMHO中查看它,该参数tz被忽略.错误发生在matplotlib.axes.Axes.xaxis_date(文件"axes.py",第2679行).
我为它提交了一份错误报告:https: //sourceforge.net/tracker/index.php?func = detail&aid = 3176823&group_id = 80706 &atid = 560720
我卸载了 Matplotlib 1.0.0 并安装了 0.99.3。完成此操作后,我现在可以正确设置时区并查看效果。我使用 Unutbu 提供的示例进行了测试,然后使用我自己的代码进行了测试。一切都按其应有的方式进行。
也许这是 1.0.0 中的一个错误?
| 归档时间: |
|
| 查看次数: |
8281 次 |
| 最近记录: |