में एक केडीई परिणाम प्लॉटिंग मैं तृतीयक साजिश के रूप में एक बड़े डेटासेट को साजिश करने के लिए ggtern का उपयोग कर रहा हूं (उदाहरण के नीचे देखें)। के रूप में मैं geom_density_tern उपयोग कर रहा थाggtern
एक निश्चित डेटा आकार सब कुछ तक, सही था()। जैसा कि मैं इसे और अधिक जटिल डेटासेट को लोड करना चाहता हूं और ggplot के साथ प्रतिपादन असंभव हो जाता है (स्मृति पक्ष पर सीमा)। मैंने सोचा कि शायद kde2d मैट्रिक्स के परिणाम को अलग से गणना करके एक कामकाज हो सकता है। और वह वहीं है जहां मैं फंस गया हूँ। मैं जानना चाहता हूं कि किसी भी तरह से ggtern में ऐसा करना संभव है?
किसी भी मामले में मैं डेटा संरचना का एक न्यूनतम मामला जोड़ता हूं और साजिश करता हूं कि मैं इस समय उपयोग करता हूं।
require(ggplot2)
require(ggtern)
set.seed(1)
mydata <- data.frame(
x = runif(100, min = 0.25, max = 0.5),
y = runif(100, min = 0.1, max = 0.4),
z = runif(100, min = 0.5, max = 0.7))
plot <- ggtern() +
theme_bw() +
theme_hidetitles() +
geom_density_tern(data = mydata,
aes(x = x, y = y, z = z, alpha = ..level..),
size = 0.1, linetype = "solid", fill = "blue")+
geom_point(data = mydata,
aes(x = x, y = y, z = z), alpha = 0.8, size = 1)
plot
उन अतिरिक्त लाइनें त्रिगुट समन्वय प्रणाली में घनत्व साजिश पुन: पेश:
library(MASS)
dataTern = transform_tern_to_cart(mydata$x,mydata$y,mydata$z)
dataTernDensity <- kde2d(x=dataTern$x, y=dataTern$y, lims = c(range(0,1), range(0,1)), n = 400)
image(dataTernDensity$x, dataTernDensity$y, dataTernDensity$z)
points(dataTern$x, dataTern$y, pch = 20, cex = 0.1)
segments(x0 = 0, y0 = 0, x1 = 0.5, y1 = 1, col= "white")
segments(x0 = 0, y0 = 0, x1 = 1, y1 = 0, col= "white")
segments(x0 = 0.5, y0 = 1, x1 = 1, y1 = 0, col= "white")
और यह ग्राफ प्राप्त: किसी भी मदद के लिए अग्रिम में
धन्यवाद!
मैं सही ढंग से समझते हैं कि आप 'kde2' कॉल कर सकते हैं करते हैं, लेकिन के लिए स्मृति से बाहर' ggtern + geom_density_tern'? – tonytonov
मेरा मतलब था कि मेरे "असली" विश्लेषण में मेरे पास एक विशाल डेटा फ्रेम है, जो कि geom_density_tern के लिए एक बार में संभालने के लिए बहुत बड़ा है। मैंने geom_density_tern में एक prealculculated kde2 मैट्रिक्स में लोड करने के लिए सोचा था। क्या यह अधिक समझ में आता है? – Ludwik