Python和科学计算认证群组  - 讨论区

标题:如何以时间作为X轴画图

2011年06月06日 星期一 21:50

RT,请教如何导入以记录数据的时间作为X轴并画出相应的图形,假设保存的DATA.txt中数据如下:

尝试了loadtxt无法导入时间格式的数据!

31.05.2011 10:12:58    0
31.05.2011 10:12:59    1
31.05.2011 10:13:00    2
31.05.2011 10:13:01    3
31.05.2011 10:13:02    4
31.05.2011 10:13:03    5
31.05.2011 10:13:04    6
31.05.2011 10:13:05    7
31.05.2011 10:13:06    8
31.05.2011 10:13:07    9
31.05.2011 10:13:08    10
31.05.2011 10:13:09    11
31.05.2011 10:13:10    12
31.05.2011 10:13:11    13
31.05.2011 10:13:12    14
31.05.2011 10:13:13    15
31.05.2011 10:13:14    16
31.05.2011 10:13:15    17
31.05.2011 10:13:16    18
31.05.2011 10:13:17    19
31.05.2011 10:13:18    20
31.05.2011 10:13:19    21
31.05.2011 10:13:20    22
31.05.2011 10:13:21    23
31.05.2011 10:13:22    24
31.05.2011 10:13:23    25
31.05.2011 10:13:24    26
31.05.2011 10:13:25    27
31.05.2011 10:13:26    28
31.05.2011 10:13:27    29
31.05.2011 10:13:28    30
31.05.2011 10:13:29    31
31.05.2011 10:13:30    32
31.05.2011 10:13:31    33
31.05.2011 10:13:32    34
31.05.2011 10:13:33    35
31.05.2011 10:13:34    36
31.05.2011 10:13:35    37
31.05.2011 10:13:36    38
31.05.2011 10:13:37    39
31.05.2011 10:13:38    40
31.05.2011 10:13:39    41
31.05.2011 10:13:40    42
31.05.2011 10:13:41    43
31.05.2011 10:13:42    44
31.05.2011 10:13:43    45
31.05.2011 10:13:44    46
31.05.2011 10:13:45    47
31.05.2011 10:13:46    48
31.05.2011 10:13:47    49
31.05.2011 10:13:48    50

2011年06月06日 星期一 22:44

这个有些麻烦,可以用下面的程序试试:

用loadtxt载入数据时,用object作为元素类型。

然后将日期和时间相加,并转换成列表,然后调用pl.datestr2num将日期字符串转换成一个数值。

绘图时调用plot_date()。对于日期和时间的格式化,请参考matplotlib网站的演示程序。

# -*- coding: utf-8 -*-

 

import numpy as np

import pylab as pl

 

t = np.loadtxt("data.txt", np.object)

date = pl.datestr2num( list(t[:,0] + " " + t[:,1]) )

value = t[:,2].astype(np.float)

 

pl.plot_date(date, value)

pl.show()

2011年06月06日 星期一 23:13

very good, thanks so much!

2011年06月16日 星期四 21:07

请问版主:

如何利用 pl.axis([x1, x2, y1, y2]) 来设置 pl.plot_date(date, value) 图形的坐标起始点?

其中的 x1, x2 好像不能简单的取为 31.05.2011 10:12:00,  31.05.2011 10:14:00

2011年06月16日 星期四 22:07

也需要用pl.datestr2num将日期转换成数字。

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号