контурный график со строками даты и времени в качестве значений x

Я пытаюсь создать график цветового контура, показывающий время по оси x, глубину по оси y и температуру в виде значений z. Время указано как:

"2011-01-01 00:01"

i.e. "%Y-%m-%d %H:%M"

Есть ли метод для создания графика цветового контура из них и использования

filled.contour(Time,Depth,temp)

пример:

time <- c("2011-01-01 01:00", "2011-01-01 02:00", "2011-01-01 03:00",
    "2011-01-01 04:00")
depth <- seq(1,10,by = 1)
seq1 <-  seq(1:40)
temp <- matrix(seq1, 10)

Каждый столбец temp представляет разное время, а каждая строка представляет разную глубину.


person user1407388    schedule 28.05.2012    source источник
comment
Я как-то пропускаю вопрос или не вижу, в чем проблема...   -  person Havelock    schedule 28.05.2012
comment
Из приведенного выше примера: fill.contour(время,глубина,температура) выдает ошибку: - Ошибка в r[i1] - r[-length(r):-(length(r) - lag + 1L)] : non- числовой аргумент бинарного оператора   -  person user1407388    schedule 28.05.2012


Ответы (1)


Это работает для меня:

time2 <- as.POSIXct(time)

Результат:

> time2
## [1] "2011-01-01 01:00:00 EST" "2011-01-01 02:00:00 EST"
## [3] "2011-01-01 03:00:00 EST" "2011-01-01 04:00:00 EST"

Теперь постройте это:

filled.contour(time2,depth,t(temp))

введите здесь описание изображения

person Ben Bolker    schedule 28.05.2012
comment
Я хотел бы сделать то же самое и попытался использовать as.POSIXct(c(2,4,7,10,14,21,30,60,90,120,180,365)), но получил следующую ошибку Error in as.POSIXlt.character(x, tz, ...) : character string is not in a standard unambiguous format. Что я могу сделать? - person user88595; 24.05.2014
comment
если ваше время в первую очередь числовое, почему вы пытаетесь превратить его в POSIXt или символы? Почему бы просто не оставить свою переменную времени в покое, следуя приведенному выше коду, но используя filled.contour(time,depth,t(temp)) ? - person Ben Bolker; 24.05.2014
comment
Я хочу, чтобы график был логарифмическим с одинаковым интервалом между точками. Делая то, что вы только что предложили, 2, 4, 7, 10, 14 раздавливаются слева. - person user88595; 24.05.2014
comment
Я думаю, вам лучше опубликовать новый вопрос (с воспроизводимым примером, пожалуйста); не мешало бы вернуться к этому. Вы возможно сможете сделать это с помощью factor(your_var), но я не пробовал. - person Ben Bolker; 24.05.2014