在条形图中,我需要将xticks
设置为如下的小时格式:
6:00, 7:00, 8:00......
我用来制作图表的数据来自MySQL
数据库,我在数据库表中使用了TimeStamp
。现在xticks
是这样的:
我不知道如何改变我想要的方式。在
`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')
您需要使用方法
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轴的外观。在
相关问题 更多 >
编程相关推荐