/ / 3 डी घनत्व प्लॉट कई समूहों (प्रतिगमन लाइनों) के साथ - आर, प्लॉट, 3 डी, कर्नेल-घनत्व

कई समूहों (रेग्रेशन लाइन) के साथ 3 डी घनत्व साजिश - आर, साजिश, 3 डी, कर्नेल घनत्व

मैं कुछ इस तरह से कथानक बनाना चाहूंगा:

नीदरलैंड एट अल

यहाँ हमारे पास दो चर X = midyear और Y = yearend हैं। मैं Y के लिए X के प्रत्येक स्तर के लिए घनत्व प्लॉट बनाना चाहूंगा।

मैं इस बिंदु पर जा सकता था, लेकिन मैं विशेष रूप से प्लॉट और रेखा के कोण को ध्यान में रखते हुए बहुत सुंदर नहीं दिखता। कोई भी विचार ऐसे मोड़ या अन्य पैकेज बनाने के लिए जो कर सकते हैं।

set.seed(1234)
m50 <- rnorm(10000, 51, 5)
d50 <- hist(m50, breaks = 100)$density
md50 <- hist(m50, breaks = 100)$mids

m70 <- rnorm(10000, 73, 5)
d70 <- hist(m70, breaks = 100)$density
md70 <- hist(m70, breaks = 100)$mids

m90 <- rnorm(10000, 90,5)
d90 <- hist(m90, breaks = 100)$density
md90 <- hist(m90, breaks = 100)$mids

density = c(d50, d70, d90)
yearend = c(md50, md70, md90)
midyear = c(rep(50, length(d50)), rep(70, length(d70)), rep(90, length(d90)))

df <- cbind(midyear, yearend,  density)
require(scatterplot3d)
s3d <- scatterplot3d(df, type = "h", color = "blue",
angle = 80, scale.y = 0.7, xlim = c(40, 100),
zlim = c(0,0.2), pch = ".", main = "Adding elements")

यहां छवि विवरण दर्ज करें

संपादन: Rgl पैकेज का उपयोग करना

require(rgl)
s3d <- plot3d(df, type = "h",
angle = 80, scale.y = 0.7, xlim = c(40, 100),
zlim = c(0,0.15), pch = ".", main = "Adding elements")

यहां छवि विवरण दर्ज करें

उत्तर:

जवाब के लिए 2 № 1

आप 2-आयामी के साथ बेहतर हो सकते हैंग्राफ़ जो दृश्य विरूपण के बिना वितरण दिखाएगा। उदाहरण के लिए, यहाँ एक प्रतिगमन रेखा वायलिन भूखंड पर आरोपित है, इसलिए आपको प्रतिगमन रेखा और घनत्व दोनों एक 2 डी ग्राफ़ पर मिलते हैं। नीचे दिए गए कोड रैखिक और द्विघात बहुपद दोनों को दर्शाता है:

library(ggplot2)

# Fake data
set.seed(19)
dat = data.frame(yearend=c(rnorm(10000, 51, 6),
rnorm(10000, 60, 5),
rnorm(10000, 75, 5),
rnorm(10000, 85, 4)),
midyear = c(rep(51,10000), rep(58,10000),
rep(70,10000), rep(90,10000)))

ggplot(dat, aes(midyear, yearend)) +
geom_violin(aes(group=midyear)) +
stat_summary(fun.y=mean, geom="point", colour="red", size=3) +
geom_smooth(method="lm", se=FALSE) +
geom_smooth(method="lm", se=FALSE, formula=y~poly(x,2),
colour="red", lty=2)

यहां छवि विवरण दर्ज करें