2013-12-18 208 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

我會嘗試這個黑客。看起來不錯。 –