matplotlib水平条与日期和时间python

时间:2015-03-10 11:30:15

标签: python matplotlib

我需要绘制一些带有水平堆积条形图的图表。

我有一些日期时间数据,这个数据等于测试的startTime(看起来像startlab应该是pylab.barh中的'left'参数,例如left = startTime) 在x轴下应该写日期,每个日期应该等于你可以看到的图片24h,这应该看起来如何,每个测试应该在正确的日期打勾:

startTime = [datetime.datetime(2015,3, 4, 23, 4, 17),
             datetime.datetime(2015,3, 5, 23, 4, 17),
             datetime.datetime(2015,3, 6, 23, 4, 17)]

我有几秒钟的测试持续时间(如果需要我也可以将秒转换为日期时间);持续时间将是每个酒吧的长度。

testDuration = [432, 444, 753]

我的代码看起来像这样,但我不知道如何将左参数设置为datetime而我不知道如何将xTicks设置为datetime并且小时:< / p>

dynamicNlocator = 24

fig, ax1 = plt.subplots(figsize=(15, 8)) # height and width of chart
plt.subplots_adjust(left=0.120, right=0.98)
fig.canvas.set_window_title(u'Eldorado K-8 Fitness Chart')
pos = np.arange(numCp)+0.5 # Center bars on the Y-axis ticks

rects = pylab.barh(pos, testDuration, align=u'center', left=startTime, height=0.5, color=u'm', label=u"Actual start Time")

box = ax1.get_position()
ax1.set_position([box.x0, box.y0 + box.height * 0.1,
                  box.width, box.height * 0.9])
ax1.legend(loc='upper center', bbox_to_anchor=(0.5, -0.08),
           fancybox=True, shadow=True, ncol=4)

ax1.axis([0, 100, 0, numTest]) 
pylab.yticks(pos, testName, size=13)

ax2 = ax1.twinx()
ax2.xaxis.set_major_locator(MaxNLocator(dynamicNlocator))

现在我无法将所需的测试移动到正确的日期,图表应如下所示:

enter image description here

0 个答案:

没有答案