如何使用matplotlib在时间间隔内设置xaxis,比如15分钟

时间:2013-12-18 12:06:06

标签: python matplotlib

如何在时间间隔15分钟内将x轴设置为:

'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'

所以每个都是xaxis中的标签。

数据如下:

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 个答案:

答案 0 :(得分:1)

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

  2. 编写一个函数将时间间隔转换为实数。 (为了理解你,代码不是pythonic。)

    def time_to_num(time_str):
        time_str = time_str.split(':')
            #check if time_str is valid here, then:
        num = 0
        num = int(time_str[0])
        if len(time_str) == 2:
            num += int(time_str[1])/60.0
        return num
    
  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'])