Участок по дате - PullRequest
       2

Участок по дате

0 голосов
/ 17 декабря 2018

Я пытаюсь построить график по значению даты и времени.

Рассмотрим этот пример 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

Так что это просто сохраняет измерения уличного шума в виде кортежей.Я хочу нарисовать сюжет из этого, используя октаву:

# 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")

Содержание первой цифры читабельно:

Working

Однако это не совсем понятно, поскольку читатель должен знать, когда начались измерения, и рассчитать время.

Вторая цифра просто пуста:

Not working

Как построить график со значениями datenum?Я хотел попробовать разбор даты и даты для маркировки, но я даже не зашел так далеко.

Когда я добавляю xlim([min(datevalues) max(datevalues)]), я вижу только ось y.

1 Ответ

0 голосов
/ 17 декабря 2018

График работает с

graphics_toolkit("gnuplot")

в стандартном наборе "fltk" для графов числа используются как "одиночные", и у него недостаточно цифры, чтобы различать разницу в секундах между датами.Gnuplot использует «double» и может различать

enter image description here

...