2014-01-03 3 views
0

Я использую следующий код, чтобы создать facet_grid сюжета:ggplot2 facet_grid переменных групп

load(url("http://ebib.com.br/dados.RData")) 

library(ggplot2) 
library(scales) 

ggplot() + geom_step(data=subset(me, variable=="Umid. Relat."), aes(Data, value), color="blue") + 
    geom_smooth(data=subset(me, variable=="Umid. Relat."), aes(Data, value), , color="blue") + 
    geom_line(data=subset(me, variable=="Vel. Vento"), aes(Data, value), color="gray20") + 
    geom_smooth(data=subset(me, variable=="Vel. Vento"), aes(Data, value), color="gray20") + 
    geom_line(data=subset(me, variable==c("Temp. Max.", "Temp. Min.")), aes(Data, value, colour=variable)) + 
    geom_smooth(data=subset(me, variable==c("Temp. Max.", "Temp. Min.")), aes(Data, value, colour=variable)) + 
    geom_bar(stat="identity", data=subset(me, variable=="Precipitação"), aes(Data, value), fill="blue") + 
    facet_grid(variable~., scales="free_y") + 
    scale_x_date(breaks = date_breaks("months"), labels = date_format("%b")) + 
    theme(legend.position="none") 

Есть ли способ построить переменные «Temp Max.» и "Temp. Min." в том же графе/грани?

Edit: Рабочий код

load(url("http://ebib.com.br/dados.RData")) 

library(ggplot2) 
library(scales) 

me$variable2 <- as.character(me$variable) 
me$variable2[me$variable2 %in% c("Temp. Max.","Temp. Min.")] <- "Temp. Max./Min." 

ggplot() + geom_line(data=subset(me, variable=="Umid. Relat."), aes(Data, value), color="blue") + 
geom_smooth(data=subset(me, variable=="Umid. Relat."), aes(Data, value), , color="blue") + 
geom_line(data=subset(me, variable=="Vel. Vento"), aes(Data, value), color="gray20") + 
geom_smooth(data=subset(me, variable=="Vel. Vento"), aes(Data, value), color="gray20") + 
geom_line(data=subset(me, variable==c("Temp. Max.", "Temp. Min.")), aes(Data, value, colour=variable)) + 
geom_smooth(data=subset(me, variable==c("Temp. Max.", "Temp. Min.")), aes(Data, value, colour=variable)) + 
geom_bar(stat="identity", data=subset(me, variable=="Precipitação"), aes(Data, value), fill="blue") + 
facet_grid(variable2~., scales="free_y") + 
scale_x_date(breaks = date_breaks("months"), labels = date_format("%b")) + 
theme(legend.position="none") 
+3

Не очень хорошо воспроизводимый пример. Было бы лучше, если бы вы могли дать образец набора данных «я». См. Это http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Avinash

+0

Да, я думал об этом. Сейчас я редактирую сообщение. Благодаря! – rfsaldanha

ответ

3

Вам нужна новая переменная для facetting.

Новый столбец variable2 почти идентичен variable но есть одно значение "Temp. Max./Min." как для "Temp. Max." и "Temp. Min.".

me$variable2 <- as.character(me$variable) 
me$variable2[me$variable2 %in% c("Temp. Max.","Temp. Min.")] <- "Temp. Max./Min." 

Используйте эту переменную в качестве аргумента для facet_grid:

facet_grid(variable2 ~., scales = "free_y") 

Это произведет следующий сюжет:

enter image description here

+0

Спасибо! Прекрасно работает! Я отредактирую сообщение с необходимыми библиотеками и рабочим кодом. – rfsaldanha

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