如何使用matplotlib绘制带有timedelta的图形

2024-06-16 12:13:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用dattime X timedelta绘制一个图形

http://pastebin.com/QsnXdU0j

def graph_entre_mamadas(tempo_entre_mamadas):
    import matplotlib.pyplot as plt
    import matplotlib
    eixo_x = [i[0] for i in tempo_entre_mamadas]
    eixo_y = [i[1] for i in tempo_entre_mamadas]
    #print eixo_x
    #print eixo_y

    plt.plot(eixo_x, eixo_y, 'ro')
    plt.gcf().autofmt_xdate()
    plt.show()

我的变量eixo_x是日期时间。日期时间而eixo_y变量是日期时间。时间增量. 在

当我执行此方法时,我得到以下错误:

^{pr2}$

我该怎么做?在


Tags: inimport图形formatplotlib时间绘制plt
1条回答
网友
1楼 · 发布于 2024-06-16 12:13:13

Matplotlib不提供转换timedelta的简单方法。在

但是,您可以使用matplotlib.dates.date2num轻松转换matplotlib float表示中的日期。在

因此,一个可行的解决方案是使用开始时间加上delta创建一个日期,然后用date2num来转换它们,最后在两个日期转换时对它们进行区分。在

下面是一个例子:

import matplotlib
import datetime

x0 = datetime.datetime(2014, 6, 27, 9, 21, 28)
duration = datetime.timedelta(hours=1)
converted_starting_time = matplotlib.dates.date2num(x0)
converted_finish_time = matplotlib.dates.date2num(x0 + duration)
converted_delta = converted_finish_time - converted_starting_time

相关问题 更多 >