2015-06-22 3 views
1

У меня есть рамка с данными о температуре и временем. Это выглядит следующим образом:Нанесение временных данных день и час вместе

area \t day \t hour \t temperature 
 
d1 \t 09_11_2013 \t 01H0min0s \t 18,723 
 
d1 \t 09_11_2013 \t 04H0min0s \t 17,558 
 
d1 \t 09_11_2013 \t 07H0min0s \t 16,963 
 
d1 \t 09_11_2013 \t 10H0min0s \t 22,753 
 
d1 \t 09_11_2013 \t 13H0min0s \t 28,468 
 
d1 \t 10_11_2013 \t 01H0min0s \t 21,318 
 
d1 \t 10_11_2013 \t 04H0min0s \t 20,126 
 
d1 \t 10_11_2013 \t 07H0min0s \t 19,151 
 
d1 \t 10_11_2013 \t 10H0min0s \t 25,404 
 
d1 \t 10_11_2013 \t 13H0min0s \t 29,890 
 
i1 \t 09_11_2013 \t 01H0min0s \t 18,485 
 
i1 \t 09_11_2013 \t 04H0min0s \t 17,368 
 
i1 \t 09_11_2013 \t 07H0min0s \t 16,844 
 
i1 \t 09_11_2013 \t 10H0min0s \t 24,171 
 
i1 \t 09_11_2013 \t 13H0min0s \t 28,072 
 
i1 \t 10_11_2013 \t 01H0min0s \t 21,246 
 
i1 \t 10_11_2013 \t 04H0min0s \t 20,103 
 
i1 \t 10_11_2013 \t 07H0min0s \t 19,151 
 
i1 \t 10_11_2013 \t 10H0min0s \t 27,087 
 
i1 \t 10_11_2013 \t 13H0min0s \t 28,518

В моем примере я две области и пять температур в час в день. Я использую эту функцию (пакет ggplot2), но я хотел бы построить график столбца.

ggplot(data, aes(x=day, y=temperature, colour=area, group=area)) + geom_point() 

ответ

2

Я бы создал элемент времени, который сочетает дату и час. Затем вы можете использовать это как ось x и использовать scale_x_datetime для большего контроля над нарушениями и метками.

# Your data 
dat <- read.table(header=T, text= 
"area day hour temperature 
d1 09_11_2013 01H0min0s 18,723 
d1 09_11_2013 04H0min0s 17,558 
d1 09_11_2013 07H0min0s 16,963 
d1 09_11_2013 10H0min0s 22,753 
d1 09_11_2013 13H0min0s 28,468 
d1 10_11_2013 01H0min0s 21,318 
d1 10_11_2013 04H0min0s 20,126 
d1 10_11_2013 07H0min0s 19,151 
d1 10_11_2013 10H0min0s 25,404 
d1 10_11_2013 13H0min0s 29,890 
i1 09_11_2013 01H0min0s 18,485 
i1 09_11_2013 04H0min0s 17,368 
i1 09_11_2013 07H0min0s 16,844 
i1 09_11_2013 10H0min0s 24,171 
i1 09_11_2013 13H0min0s 28,072 
i1 10_11_2013 01H0min0s 21,246 
i1 10_11_2013 04H0min0s 20,103 
i1 10_11_2013 07H0min0s 19,151 
i1 10_11_2013 10H0min0s 27,087 
i1 10_11_2013 13H0min0s 28,518", stringsAsFactors=F, dec=",") 

# Create a data-time vector 
dat$time <- as.POSIXct(
       paste(dat$day, gsub("[^0-9]+", ":", dat$hour)), 
       format="%d_%m_%Y %H:%M:%S") 

# Plot 
library(ggplot2) 

ggplot(dat, aes(x=time, y=temperature, colour=area)) + 
      geom_point() + 
      theme(axis.text.x=element_text(size=10)) 

enter image description here

Смежные вопросы