我需要绘制一些带有水平堆积条形图的图表。
我有一些日期时间数据,这个数据等于测试的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))
现在我无法将所需的测试移动到正确的日期,图表应如下所示: