相关疑难解决方法(0)

使用facet在图形上添加R ^ 2

我正在多个方面绘制geom_points,并希望在每个方面上注释R ^ 2(最好是在facet_label而不是图形上).我在这里找到了一些代码,它会给出R ^ 2和完整数据的回归方程框架而不是子集.

我的data.frame被追加了.

基本上我想关联ln_x和ln_y(由于命名约定不正确,ln_x实际上在y轴上)由roi_size面对.这是我到目前为止:

lm_eqn = function(df){
    m = lm(ln_x ~ ln_y, df);
    eq <- substitute(~~R^2~"="~r2, 
                     list(r2 = format(summary(m)$r.squared, digits = 3)))
    as.character(as.expression(eq));                 
}
p2 <- ggplot(df, aes(x=ln_x, y=ln_y)) + geom_point(shape=19, aes(colour=factor(depth))) + geom_smooth(method="lm") + 
    facet_wrap(~roi_size) + scale_color_discrete("depth (mm)")

p2  + labs(y=expression(ln(frac(C[low]^air,C[low]^depth))),
           x=expression(ln(frac(C[low]^depth,C[high]^depth))) ) +
    theme(axis.title.x = element_text(colour='blue', size=16, hjust=0.9)) + 
    theme(axis.title.y = element_text(colour='blue', size=16, angle=0)) + 
    geom_text(aes(x=1.5,y=2.2,label=lm_eqn(df),family="serif"), 
       color='blue',  parse=TRUE)
Run Code Online (Sandbox Code Playgroud)

这将打印每个方面上的完整数据帧的R ^ 2.如何调整为每个方面的数据打印R ^ 2,因为df取决于facet变量(roi_size).另外,我如何在构面标签而不是图形上打印文本

structure(list(roi_size = c(54.11, 49.18, 41.06, 32.31, 23.71, 
13.85, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

10
推荐指数
1
解决办法
5442
查看次数

如何使用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")
Run Code Online (Sandbox Code Playgroud)

我想要做的是创建一个看起来大致如下的刻面ggplot:

在此输入图像描述

因此,上面的每个方面都是以下相关图:

# 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..
Run Code Online (Sandbox Code Playgroud)

但我坚持使用以下代码:

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)) …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

ggplot2 ×2

r ×2

plot ×1