python matplotlib设置xticks与小时格式

时间:2014-01-28 21:16:22

标签: python mysql matplotlib plot timestamp

在条形图中,我需要将xticks设置为小时格式,如下所示:

6:00, 7:00, 8:00......

我用来制作图表的数据来自MySQL数据库,我在数据库表中使用了TimeStamp。现在xticks是这样的:

6, 7, 8......

我不知道如何以我想要的方式改变它。

`query = """select HOUR(TimeStamp) AS Hour, SUM(Pac/12) As Pac FROM SolarData WHERE `TimeStamp` >= CURDATE() AND `TimeStamp` < CURDATE()+1 GROUP BY HOUR(TimeStamp);""";`

添加:TimeStamp不会每天在同一时间创建。如果x-axis可以标记为以下图片,我更愿意这样做:

enter image description here

但是,如果我这样做x-axis,考虑到我查询的方式,可能存在潜在问题:HOUR(TimeStamp)INT数据类型和{{1}在图像中标有x-axis数据类型......只要我理解。

我尝试了下面的这个查询,但我仍然没有解决数据类型冲突问题。我没有设置STRING,而是尝试重新格式化xticks,使其成为:{/ p>

TimeStamp

而不是:

6:00,7:00,8:00,9:00...

6,7,8,9.... 会使'%H:%00'无法使用底部的TimeStamp命令...

plt.bar()

2 个答案:

答案 0 :(得分:0)

您需要使用方法xticks,请参阅matplotlib文档中的此示例。

http://matplotlib.org/examples/pylab_examples/barchart_demo2.html

答案 1 :(得分:0)

您还可以使用优秀的Pandas Python Data Analysis Library根据查询的输出创建时间序列对象数组。看看包含大量good examples的Pandas网站。特别是look here,了解如何使用pandas和matplotlib来控制x轴的外观。