stat_poly_eq()
Paketimi ggpmisc
şu yanıta izin veren bir istatistik ekledim:
library(ggplot2)
library(ggpmisc)
df <- data.frame(x = c(1:100))
df$y <- 2 + 3 * df$x + rnorm(100, sd = 40)
my.formula <- y ~ x
p <- ggplot(data = df, aes(x = x, y = y)) +
geom_smooth(method = "lm", se=FALSE, color="black", formula = my.formula) +
stat_poly_eq(formula = my.formula,
aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
parse = TRUE) +
geom_point()
p
Bu istatistik, eksik terimleri olmayan herhangi bir polinom ile çalışır ve umarım genel olarak yararlı olmak için yeterli esnekliğe sahiptir. R ^ 2 veya ayarlanmış R ^ 2 etiketleri, lm () ile donatılmış herhangi bir model formülüyle kullanılabilir. Bir ggplot istatistiği olarak hem gruplarda hem de modellerde beklendiği gibi davranır.
'Ggpmisc' paketi CRAN aracılığıyla edinilebilir.
Sürüm 0.2.6 sadece CRAN'a kabul edildi.
@Shabbychef ve @ MYaseen208 tarafından yapılan yorumları ele almaktadır.
@ MYaseen208 bu nasıl şapka ekleneceğini gösterir .
library(ggplot2)
library(ggpmisc)
df <- data.frame(x = c(1:100))
df$y <- 2 + 3 * df$x + rnorm(100, sd = 40)
my.formula <- y ~ x
p <- ggplot(data = df, aes(x = x, y = y)) +
geom_smooth(method = "lm", se=FALSE, color="black", formula = my.formula) +
stat_poly_eq(formula = my.formula,
eq.with.lhs = "italic(hat(y))~`=`~",
aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
parse = TRUE) +
geom_point()
p
@shabbychef Denklemdeki değişkenleri eksen etiketleri için kullanılan değişkenlerle eşleştirmek mümkündür. Değiştirmek için x diyelim ki z ve y ile saat bir kullanmak:
p <- ggplot(data = df, aes(x = x, y = y)) +
geom_smooth(method = "lm", se=FALSE, color="black", formula = my.formula) +
stat_poly_eq(formula = my.formula,
eq.with.lhs = "italic(h)~`=`~",
eq.x.rhs = "~italic(z)",
aes(label = ..eq.label..),
parse = TRUE) +
labs(x = expression(italic(z)), y = expression(italic(h))) +
geom_point()
p
Bu normal R çözümlü ifadeler olan Yunan harfleri artık denklemin hem lh'lerinde hem de rh'lerinde kullanılabilir.
[2017-03-08] @elarry Denklem ve R2 etiketleri arasına nasıl virgül ekleneceğini gösteren orijinal soruyu daha kesin bir şekilde ele almak için düzenleyin.
p <- ggplot(data = df, aes(x = x, y = y)) +
geom_smooth(method = "lm", se=FALSE, color="black", formula = my.formula) +
stat_poly_eq(formula = my.formula,
eq.with.lhs = "italic(hat(y))~`=`~",
aes(label = paste(..eq.label.., ..rr.label.., sep = "*plain(\",\")~")),
parse = TRUE) +
geom_point()
p
[2019-10-20] @ helen.h Aşağıda stat_poly_eq()
gruplama ile kullanım örnekleri verdim .
library(ggpmisc)
df <- data.frame(x = c(1:100))
df$y <- 20 * c(0, 1) + 3 * df$x + rnorm(100, sd = 40)
df$group <- factor(rep(c("A", "B"), 50))
my.formula <- y ~ x
p <- ggplot(data = df, aes(x = x, y = y, colour = group)) +
geom_smooth(method = "lm", se=FALSE, formula = my.formula) +
stat_poly_eq(formula = my.formula,
aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
parse = TRUE) +
geom_point()
p
p <- ggplot(data = df, aes(x = x, y = y, linetype = group)) +
geom_smooth(method = "lm", se=FALSE, formula = my.formula) +
stat_poly_eq(formula = my.formula,
aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
parse = TRUE) +
geom_point()
p
[2020-01-21] @Herman İlk bakışta biraz sezgisel olabilir, ancak gruplama kullanırken tek bir denklem elde etmek için grafiklerin gramerini takip etmek gerekir. Gruplamayı oluşturan eşlemeyi tek tek katmanlarla (aşağıda gösterilen) kısıtlayın ya da varsayılan eşlemeyi koruyun ve katmanda, gruplandırmayı istemediğiniz sabit bir değerle geçersiz kılın (ör. colour = "black"
).
Önceki örnekten devam.
p <- ggplot(data = df, aes(x = x, y = y)) +
geom_smooth(method = "lm", se=FALSE, formula = my.formula) +
stat_poly_eq(formula = my.formula,
aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
parse = TRUE) +
geom_point(aes(colour = group))
p
[2020-01-22] Bütünlük adına, fasetlerle ilgili bir örnek, bu durumda grafik gramerinin beklentilerinin de yerine getirildiğini gösterir.
library(ggpmisc)
df <- data.frame(x = c(1:100))
df$y <- 20 * c(0, 1) + 3 * df$x + rnorm(100, sd = 40)
df$group <- factor(rep(c("A", "B"), 50))
my.formula <- y ~ x
p <- ggplot(data = df, aes(x = x, y = y)) +
geom_smooth(method = "lm", se=FALSE, formula = my.formula) +
stat_poly_eq(formula = my.formula,
aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
parse = TRUE) +
geom_point() +
facet_wrap(~group)
p
latticeExtra::lmlineq()
.