私はggternを使って3次プロットの形で大きなデータセットをプロットしています(下の例を参照)。ggternでのkde結果のプロット
特定のデータサイズティル私はgeom_density_ternを使用していたとして、すべてが)(、完璧でした。もっと複雑なデータセットをすべて可視化して表示したいので、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")
そして、このグラフを得る:任意の助けを事前に
感謝を!
私はあなたが 'ggtern + geom_density_tern'のために' kde2'が、メモリ不足に呼び出すことができることを正しく理解していますか? – tonytonov
私は、私の "本当の"分析では、巨大なデータフレームを持っていることを意味しました.Geom_density_ternが一度に処理するためにはるかに大きなものです。私はgeom_density_ternにあらかじめ計算されたkde2行列をロードすると考えました。もっと分かりやすいですか? – Ludwik