2
我在使用另一個變量facet_wrap後在散點圖上放置相關係數的問題。 下面是我使用mtcars數據集進行說明的例子。當我繪製出來時,兩個圖都有相同的相關數。似乎沒有爲每個方面計算相關係數。我無法想出一個辦法來實現這一點。真的很感激,如果有人能好心提供幫助的......通過可變inputFacet
在分面後在ggplot散點圖上加上相關係數
library(ggplot2)
library(dplyr)
corr_eqn <- function(x,y, method='pearson', digits = 2) {
corr_coef <- round(cor.test(x, y, method=method)$estimate, digits = digits)
corr_pval <- tryCatch(format(cor.test(x,y, method=method)$p.value,
scientific=TRUE),
error=function(e) NA)
paste(method, 'r = ', corr_coef, ',', 'pval =', corr_pval)
}
sca.plot <- function (cor.coef=TRUE) {
df<- mtcars %>% filter(vs==1)
p<- df %>%
ggplot(aes(x=hp, y=mpg))+
geom_point()+
geom_smooth()+
facet_wrap(~cyl, ncol=3)
if (cor.coef) {
p<- p+geom_text(x=0.9*max(df$hp, na.rm=TRUE),
y=0.9*max(df$mpg, na.rm=TRUE),
label = corr_eqn(df[['hp']],df[['mpg']],
method='pearson'))
}
return (p)
}
sca.plot(cor.coef=TRUE)
我不會那樣做的......每個函數一個功能。使用'ggplot2'繪製你的數據,使用'cor'來計算相關性,不要混合這些東西。使用base R來計算每個'cyl'和管道到'geom_text'的相關性。 – PoGibas
@PoGibas我只是用mtcars作爲例子。在我的工作中,我需要爲有光澤的應用可視化目的做到這一點。選擇facet_wrap變量並繪製帶有相關係數的散點圖。 – zesla
如果我的解決方案有助於解決您的問題,您可以接受答案,以便我們可以關閉該問題:) – PoGibas