построить дневной профиль с питоном - PullRequest
2 голосов
/ 14 февраля 2011

Я хочу сделать дневной график профиля: час против концентрации.Я использую matplotlib и модуль datetime.

Когда я пишу:

import datetime
from pylab import *
b = [datetime.time(12,0), datetime.time(13,0)]
c = [4,5]
plot(b,c)
show()

... это не работает.

Вместо этого я должен использовать объекты datetimeобъектов времени, чтобы можно было построить график:

a = [datetime.datetime(2005,5,10,12), datetime.datetime(2005,5,10,13)]
c = [4,5]
plot(a,c)
show()

Но я действительно хотел бы иметь возможность создавать график, используя объекты времени вместо даты и времени ... Есть идеи?

Ответы [ 2 ]

3 голосов
/ 14 февраля 2011

Взгляните на документацию по matplotlib здесь:

http://matplotlib.sourceforge.net/api/dates_api.html

Проблема в том, что matplotlib знает только как преобразовать объект datetime в число с плавающей точкой, и он там не выглядитта же поддержка datetime.time

Редактировать: Одно из возможных решений - просто получить дату по умолчанию («сегодня»), а затем объединить ее с конкретным временем, которое вы хотите, если вас не волнует дата:

import datetime
from pylab import *
d = datetime.date.today()
tt = [datetime.time(12,0), datetime.time(13,0)]
b = []
for t in tt:
    b.append(datetime.datetime.combine(d,t))
c = [4,5]
plot(b,c)
show()
0 голосов
/ 14 февраля 2011

Время возвращает количество секунд.

>>>print time.time()
1297696979.78

>>>print date.fromtimestamp(today)
2011-02-14

Сегодня, будучи переменной, я установил ее равной текущему time.time (). Я не совсем уверен, почему вы вводите переменные в функцию time ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...