ggpmisc::stat_poly_eq 是否重新计算趋势线数学以获得标签?
Does ggpmisc::stat_poly_eq recompute the trend line math to get the labels?
library(ggplot2)
library(dplyr)
x <- 1:100
y <- (x + x^2 + x^3) + rnorm(length(x), mean = 0, sd = mean(x^3) / 4)
my.data <- data.frame(x = x, y = y,
group = c("A", "B"),
facet = c("C", "D", "E", "F", "G"),
y2 = y * c(0.5,2),
w = sqrt(x))
formula <- y ~ poly(x, 3, raw = TRUE)
ggplot(my.data %>% group_by(facet, group) %>% mutate(n = n()), aes(x, y, n = n, color = facet)) +
geom_point() +
geom_smooth(method = "lm", formula = formula) +
facet_grid(vars(group)) +
ggpmisc::stat_poly_eq(aes(label = paste(stat(rr.label), paste("N ~`=`~", n), sep = "*\", \"*")),
formula = formula, parse=T)
geom_smooth
将计算一次数学以绘制趋势线。如果我然后添加 ggpmisc::stat_poly_eq
,它会重新计算第二次数学以获得标签吗?
是的,他们会装两次。我不知道有什么方法可以在 'ggplot2' 内避免这种情况而不依赖于编写一对新的 stat + geom。我认为这是可以做到的,事实上这将是对软件包的一个很好的增强。
library(ggplot2)
library(dplyr)
x <- 1:100
y <- (x + x^2 + x^3) + rnorm(length(x), mean = 0, sd = mean(x^3) / 4)
my.data <- data.frame(x = x, y = y,
group = c("A", "B"),
facet = c("C", "D", "E", "F", "G"),
y2 = y * c(0.5,2),
w = sqrt(x))
formula <- y ~ poly(x, 3, raw = TRUE)
ggplot(my.data %>% group_by(facet, group) %>% mutate(n = n()), aes(x, y, n = n, color = facet)) +
geom_point() +
geom_smooth(method = "lm", formula = formula) +
facet_grid(vars(group)) +
ggpmisc::stat_poly_eq(aes(label = paste(stat(rr.label), paste("N ~`=`~", n), sep = "*\", \"*")),
formula = formula, parse=T)
geom_smooth
将计算一次数学以绘制趋势线。如果我然后添加 ggpmisc::stat_poly_eq
,它会重新计算第二次数学以获得标签吗?
是的,他们会装两次。我不知道有什么方法可以在 'ggplot2' 内避免这种情况而不依赖于编写一对新的 stat + geom。我认为这是可以做到的,事实上这将是对软件包的一个很好的增强。