मैं कुछ इस तरह से कथानक बनाना चाहूंगा:
यहाँ हमारे पास दो चर 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)