मैंने stat_poly_eq()
अपने पैकेज में एक आँकड़े शामिल किए हैं जो ggpmisc
इस उत्तर की अनुमति देता है:
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
यह आँकड़ा किसी भी बहुपद के साथ बिना किसी गायब हुए शब्द के साथ काम करता है, और उम्मीद है कि आम तौर पर उपयोगी होने के लिए पर्याप्त लचीलापन है। R ^ 2 या समायोजित R ^ 2 लेबल का उपयोग किसी भी मॉडल सूत्र के साथ lm () के साथ किया जा सकता है। एक ggplot आँकड़ा होने के नाते यह समूहों और पहलुओं दोनों के साथ अपेक्षित व्यवहार करता है।
'Ggpmisc' पैकेज CRAN के माध्यम से उपलब्ध है।
संस्करण 0.2.6 सिर्फ CRAN के लिए स्वीकार किया गया था।
यह @shabbychef और @ MYaseen208 द्वारा टिप्पणियों को संबोधित करता है।
@ MYaseen208 यह दिखाता है कि कैसे जोड़ना है टोपी ।
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
@ शब्बीचेफ अब अक्ष-लेबलों के लिए उपयोग किए जाने वाले समीकरणों में चर का मिलान करना संभव है। बदलने के लिए एक्स कहते हैं के साथ z और y के साथ ज एक का प्रयोग करेंगे:
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
इन सामान्य आर के अभिव्यक्तियों के होने के कारण ग्रीक अक्षर अब समीकरण के lhs और rhs दोनों में उपयोग किए जा सकते हैं।
[२०१ [-०३-० address] @elarry ने मूल प्रश्न को अधिक सटीक रूप से संपादित किया, जिसमें दिखाया गया है कि समीकरण और R2- लेबल के बीच अल्पविराम कैसे जोड़ा जाए।
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
[२०१ ९ -१०-२०] @ हेलन। मैं stat_poly_eq()
ग्रुपिंग के उपयोग के उदाहरण नीचे देता हूं ।
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
[२०२०-०१-२१] @ हर्मन यह पहली नजर में थोड़ा जवाबी हो सकता है, लेकिन ग्राफिक्स के व्याकरण का पालन करने के लिए किसी एक को समूहीकृत करने का उपयोग करते समय एक एकल समीकरण प्राप्त करना। या तो उस मैपिंग को प्रतिबंधित करें जो ग्रुपिंग को अलग-अलग लेयर्स के लिए बनाता है (नीचे दिखाया गया है) या डिफॉल्ट मैपिंग को बनाए रखें और इसे उस लेयर में एक स्थिर मान के साथ ओवरराइड करें जहां आप ग्रुपिंग नहीं चाहते हैं (जैसेcolour = "black"
) ।
पिछले उदाहरण से जारी है।
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
[२०२०-०१-२२] पूर्णता के लिए पहलुओं के साथ एक उदाहरण, यह दर्शाता है कि इस मामले में भी ग्राफिक्स के व्याकरण की अपेक्षाएं पूरी होती हैं।
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()
।