2013-12-18 168 views
1

15分钟如何设置x轴的时间间隔15分钟为:如何设置时间间隔x轴,说使用matplotlib

'08:00', '08:15', '08:30', '08:45', '09:00', '09:15', '09:30', '09:45', '10:00','10:15', '10:30', '10:45','11:00' 

所以每一个都是在x轴的标签。

数据如下:

data = [[0,1],[08:18,09:16],[10:18,10:52]] 

x1 = data[:][1] 

x2 = data[:][2] 

y = data[:][0] 

我想使用绘图功能与数据绘制如上:

plt.plot(data[:][1], y, 
     data[:][2], y) 

密谋后,应该有在地图上的两行。标签的时间间隔为15分钟。

+1

什么**确切**是您的数据。因为'data = [[0,1],[08:18,09:16],[10:18,10:52]]'是无效的Python。 –

回答

1
  1. 给定data在Python中无效。它应该像[["0","1"],["08:18","09:16"]]

  2. 编写函数将时间间隔转换为实数。 (对于understandablity给你,代码是不是Python的。)

    ​​
  3. 使它像x1 = [time_to_num(item[1]) for item in data]

  4. 将X轴拉布勒随着时间间隔的东西,如:

    #fig = matplotlib.plot... 
    fig.set_xticks([0, 0.25, 0.5, 0.75, 1, 1.25]) 
    fig.set_xticklabels(['0:00', '0:15', '0:30', '0:45', '1:00', '1:15']) 
    
+0

你也可以使用'datetime'来为你做解析。然后你可以直接使用maplotlib绘制'datetime'对象。 'setxticklabels'只能作为最后的手段使用,它会将您的标签与您的数据分离。 – tacaswell

+0

@tcaswell是的,这是一个有点肮脏的黑客:-) – Skyler

+0

我会尝试这个黑客。看起来不错。 –