如何在时间间隔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分钟。
答案 0 :(得分:1)
给定的data
在Python中无效。它应该像[["0","1"],["08:18","09:16"]]
。
编写一个函数将时间间隔转换为实数。 (为了理解你,代码不是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
使其像x1 = [time_to_num(item[1]) for item in data]
将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'])