按日期绘制
Plot by datenum
我正在尝试按日期时间值绘制图表。
考虑这个例子 CSV (streetnoise.csv
):
datetime,noise level
2018-12-03 03:31:12.592,10
2018-12-03 03:31:15.832,10
2018-12-03 03:31:17.062,11
2018-12-03 03:31:19.292,12
2018-12-03 03:31:23.532,11
2018-12-03 03:31:25.762,10
2018-12-03 03:31:26.002,23
2018-12-03 03:31:28.242,10
2018-12-03 03:31:34.492,10
2018-12-03 03:31:34.722,9
所以这只是将街道噪音测量值存储为元组。我想从中绘制一个图,使用 Octave:
# Load the data
pkg load io
csv_data = csv2cell("streetnoise.csv")
# Parse the datetimes
datevalues = datenum(csv_data(2:end,1), "yyyy-mm-dd HH:MM:SS.FFF")
seconds = (datevalues - datevalues(1)) * 24 * 60 * 60
# Get noise levels
noiseLevels = [csv_data{2:end,2}]
# Plot by seconds since start
h = figure(1)
plot(seconds, noiseLevels)
title("Levels per seconds")
xlim([min(seconds) max(seconds)])
# Plot by datenum
i = figure(2)
plot(datevalues, noiseLevels)
title("Levels per datevalues")
第一张图内容可读:
然而,这并不是真正可以理解的,因为 reader 必须知道测量何时开始并计算时间。
第二个数字是空的:
如何使用 datenum 值绘图?之后我想尝试使用 datenum 解析进行标记,但我什至没有走到那一步。
当我添加 xlim([min(datevalues) max(datevalues)])
时,我只能看到 y 轴。
图表适用于
graphics_toolkit("gnuplot")
默认的 "fltk" 图形工具包使用数字作为 "single",它没有足够的数字来
区分日期之间的秒数差异。 Gnuplot 使用 "double" 并且它可以区分
我正在尝试按日期时间值绘制图表。
考虑这个例子 CSV (streetnoise.csv
):
datetime,noise level
2018-12-03 03:31:12.592,10
2018-12-03 03:31:15.832,10
2018-12-03 03:31:17.062,11
2018-12-03 03:31:19.292,12
2018-12-03 03:31:23.532,11
2018-12-03 03:31:25.762,10
2018-12-03 03:31:26.002,23
2018-12-03 03:31:28.242,10
2018-12-03 03:31:34.492,10
2018-12-03 03:31:34.722,9
所以这只是将街道噪音测量值存储为元组。我想从中绘制一个图,使用 Octave:
# Load the data
pkg load io
csv_data = csv2cell("streetnoise.csv")
# Parse the datetimes
datevalues = datenum(csv_data(2:end,1), "yyyy-mm-dd HH:MM:SS.FFF")
seconds = (datevalues - datevalues(1)) * 24 * 60 * 60
# Get noise levels
noiseLevels = [csv_data{2:end,2}]
# Plot by seconds since start
h = figure(1)
plot(seconds, noiseLevels)
title("Levels per seconds")
xlim([min(seconds) max(seconds)])
# Plot by datenum
i = figure(2)
plot(datevalues, noiseLevels)
title("Levels per datevalues")
第一张图内容可读:
然而,这并不是真正可以理解的,因为 reader 必须知道测量何时开始并计算时间。
第二个数字是空的:
如何使用 datenum 值绘图?之后我想尝试使用 datenum 解析进行标记,但我什至没有走到那一步。
当我添加 xlim([min(datevalues) max(datevalues)])
时,我只能看到 y 轴。
图表适用于
graphics_toolkit("gnuplot")
默认的 "fltk" 图形工具包使用数字作为 "single",它没有足够的数字来 区分日期之间的秒数差异。 Gnuplot 使用 "double" 并且它可以区分