【发布时间】:2014-02-20 10:14:00
【问题描述】:
在我的条形图中,我需要将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 可以标记为下图:
但是如果我像这样创建x-axis,考虑到我进行查询的方式,可能存在一个潜在问题:HOUR(TimeStamp) 是INT 数据类型,并且图像中的x-axis 标有@ 987654335@数据类型……只要我明白。
我尝试了下面的这个查询,但我仍然没有解决数据类型冲突的问题。我没有设置xticks,而是尝试重新格式化TimeStamp,使其如下:
6:00,7:00,8:00,9:00...
代替:
6,7,8,9....
'%H:%00' 会使TimeStamp 无法使用底部的plt.bar() 命令...
`select DATE_FORMAT(TimeStamp, '%H:%00') AS Hour, SUM(Pac/12) As Pac FROM SolarData WHERE `TimeStamp` >= CURDATE()-1 AND `TimeStamp` < CURDATE() GROUP BY HOUR(TimeStamp);`
barchart = plt.bar(TimeStamp, Pac, align='center', width=0.20, color='#FFCC33')
【问题讨论】:
标签: python mysql matplotlib plot timestamp