Quiero trazar la proyección de datos tridimensionales en su símplex utilizando ggplot2. Pensé que podría gestionar la transformación en coordenadas cartesianas usando coord_trans()
, pero no sé cómo hacerlo exactamente.Realización de un gráfico ternario
Esto es lo que he intentado:
simplex.y <- function(x1, x2, x3) {
return(sqrt(0.75) * x3/(x1+x2+x3))
}
simplex.x <- function(x1, x2, x3) {
return((x2 + 0.5 * x3)/(x1+x2+x3))
}
x <- data.frame(
x1 = c(0, 0, 1, 0.1, 0.6, 0.2),
x2 = c(0, 1, 0, 0.3, 0.2, 0.8),
x3 = c(1, 0, 0, 0.6, 0.2, 0.0)
)
require(ggplot2)
ggplot(data = x, aes(x = c(x1, x2, x3), y = c(x1, x2, x3))) +
geom_point() +
coord_trans(x="simplex.x", y="simplex.y")
Se aprecia cualquier sugerencia. ¡Muchas gracias!
Véase también [Cómo instalar el paquete de ggtern en I] (http://askubuntu.com/questions/608519/how-to- install-ggtern-package-in-r) – Dante