Mam ramkę danych utworzoną w następujący sposób.Tworzenie fasetowego wykresu korelacji przy użyciu GGPLOT
library(ggplot2)
x <- data.frame(letters[1:10],abs(rnorm(10)),abs(rnorm(10)),type="x")
y <- data.frame(letters[1:10],abs(rnorm(10)),abs(rnorm(10)),type="y")
# in reality the number of row could be larger than 10 for each x and y
all <- rbind(x,y)
colnames(all) <- c("name","val1","val2","type")
Co chcę zrobić jest stworzenie aspektach ggplot, który wygląda mniej więcej tak:
Stąd każdy aspekt powyżej wykres korelacji z następujących czynności:
# Top left facet
subset(all,type=="x")$val1
subset(all,type=="y")$val1
# Top right facet
subset(all,type=="x")$val1
subset(all,type=="y")$val2
# ...etc..
Ale utknąłem z następującym kodem:
p <- ggplot(all, aes(val1, val2))+ geom_smooth(method = "lm") + geom_point() +
facet_grid(type ~)
# Calculate correlation for each group
cors <- ddply(all, c(type ~), summarise, cor = round(cor(val1, val2), 2))
p + geom_text(data=cors, aes(label=paste("r=", cor, sep="")), x=0.5, y=0.5)
Co jest właściwym sposobem na zrobienie tego?
Co typu mają zrobić ze swoim działce żądanego obrazu? Istnieje pakiet ggAlly z funkcją ggpairs, która może być przydatna. W tej chwili staram się zobaczyć związek między danymi przykładowymi a pożądanym działaniem. – mnel
Szczególnie mylące jest odwoływanie się do mpg i wt, których nie ma w Państwa danych. – alexwhan
Niestety. Poprawiłem to. Dziękuję za wskazanie. – neversaint