python matplotlib用小时形式设置xticks

2024-04-20 07:04:58 发布

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

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

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

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

^{pr2}$

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

`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可以标记为下图:

{1美元^

但是,如果我像这样生成x-axis,考虑到我的查询方式,可能会有一个潜在的问题:HOUR(TimeStamp)是一个INT数据类型,而图像中的x-axis被标记为STRING数据类型。。。只要我明白。在

我在下面尝试了这个查询,但是仍然没有解决数据类型冲突的问题。我没有设置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')

Tags: from数据库as方式selecttimestamp数据类型pac
2条回答

您需要使用方法xticks,请参阅matplotlib docs中的示例。在

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

您还可以使用优秀的Pandas Python Data Analysis Library根据查询的输出创建timeseries对象的数组。看看熊猫网站,里面有很多good examples。特别是,look here介绍如何将pandas与matplotlib一起使用来控制x轴的外观。在

相关问题 更多 >