2015-06-19 2 views
0

Я хотел бы построить свои временные данные, но по какой-то причине я не собираюсь четко рисовать. Я использую эту функцию:Как я могу построить временные данные из трех разных областей?

plot(temperature~month*area, data=mydata) 

Но эта функция не разделяет области.

Мой пример:

  area month temperature 
       d1 november 18,723 
       d1 november 16,963 
       d1 november 22,753 
       d1 november 30,495 
       d1 november 26,818 
       d1 november 22,944 
       i1 november 18,485 
       i1 november 17,368 
       i1 november 16,844 
       i1 november 24,171 
       i1 november 28,072 
       i1 november 28,766 
       i1 november 25,744 
       i1 november 22,920 
       c1 november 17,272 
       c1 november 16,225 
       c1 november 16,058 
       c1 november 22,920 
       c1 november 28,642 
       c1 november 26,256 
       d1 december 17,558 
       d1 december 28,468 
       d1 december 21,318 
       i1 december 21,246 
       i1 december 20,103 
       c1 december 27,776 
       c1 december 21,652 
       c1 december 19,793 
       c1 december 18,628 
       c1 december 17,796 
+0

Что вы имеете в виду под «областями»? Вы ищете грани, как в пакете ggplot? Сейчас вы планируете использовать переменную day_month_year, умноженную на переменную области. Я предполагаю, что это оба фактора, которые делают это здесь не очень полезным, но трудно сказать без воспроизводимого набора данных. – cr1msonB1ade

ответ

1

Ваши данные немного странно. У вас всего две даты. Каждая из трех областей имеет несколько темпов для этих дат. Было бы мало смысла использовать линейный график. Следующий код содержит диаграмму рассеяния, сгруппированную по области. Он использует библиотеку ggplot2 для создания сюжета по группам.

dat <- read.table(
    header=TRUE, text='area day_month_year temperature 
d1 09_11_2013 18,723 
d1 09_11_2013 17,558 
d1 09_11_2013 16,963 
d1 09_11_2013 22,753 
d1 09_11_2013 28,468 
d1 09_11_2013 30,495 
d1 09_11_2013 26,818 
d1 09_11_2013 22,944 
d1 10_11_2013 21,318 
i1 09_11_2013 18,485 
i1 09_11_2013 17,368 
i1 09_11_2013 16,844 
i1 09_11_2013 24,171 
i1 09_11_2013 28,072 
i1 09_11_2013 28,766 
i1 09_11_2013 25,744 
i1 09_11_2013 22,920 
i1 10_11_2013 21,246 
i1 10_11_2013 20,103 
c1 09_11_2013 17,272 
c1 09_11_2013 16,225 
c1 09_11_2013 16,058 
c1 09_11_2013 22,920 
c1 09_11_2013 27,776 
c1 09_11_2013 28,642 
c1 09_11_2013 26,256 
c1 09_11_2013 21,652 
c1 10_11_2013 19,793 
c1 10_11_2013 18,628 
c1 10_11_2013 17,796') 

# convert temp to numeric data 
dat$temp=as.numeric(gsub(',','.',dat$temp)) 

# convert day_month_year to date and add to dataframe 
dat$date=as.Date(dat$day_month_year,"%d_%m_%Y") 

# scatter plot by group 
library(ggplot2) 
ggplot(dat, aes(x=date, y=temp, colour=area, group=area)) + geom_point() 

Отмечу, что вы изменили формат дат в своих данных. Это решение использует ваш оригинальный формат. Если вы хотите продолжить использовать новый формат с именем месяца, вам нужно будет изменить его.

+0

Спасибо rbroberg –

+0

Да я изменился, но первый формат является правильным, я просто пытаюсь упростить мои данные. Я буду использовать ваше решение @rbroberg. Большое спасибо. –

+1

@rbroberg; посмотрите аргумент 'dec'' read.table', который может спасти abit от ввода 'gsub' – user20650

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