Se puede hacer usando stat_sum
dentro de ggplot2. Por defecto, el tamaño del punto representa proporciones. Para obtener el tamaño de punto para representar conteos, use size = ..n..
como estética. Los recuentos (y las proporciones) por una tercera variable se pueden obtener ponderando por la tercera variable (weight = cost
) como una estética. Algunos ejemplos, pero primero, algunos datos.
library(ggplot2)
set.seed = 321
# Generate somme data
df <- expand.grid(x = seq(1:5), y = seq(1:5), KEEP.OUT.ATTRS = FALSE)
df$Count = sample(1:25, 25, replace = F)
library(plyr)
new <- dlply(df, .(Count), function(data) matrix(rep(matrix(c(data$x, data$y), ncol = 2), data$Count), byrow = TRUE, ncol = 2))
df2 <- data.frame(do.call(rbind, new))
df2$cost <- 1:325
Los datos contienen unidades clasificadas según dos factores: X1 y X2; y una tercera variable que es el costo de cada unidad.
Gráfico 1: Grafica la proporción de elementos en cada combinación X1 - X2. group=1
le dice a ggplot que calcule las proporciones del total de unidades en el marco de datos.
ggplot(df2, aes(factor(X1), factor(X2))) +
stat_sum(aes(group = 1))
Parcela 2: Parcelas la número de elementos en cada X1 - X2 combinación.
ggplot(df2, aes(factor(X1), factor(X2))) +
stat_sum(aes(size = ..n..))
Parcela 3: Parcelas el costo de los elementos en cada X1 - X2 combinación, que es weight
por la tercera variable.
ggplot(df2, aes(x=factor(X1), y=factor(X2))) +
stat_sum(aes(group = 1, weight = cost, size = ..n..))
Parcela 4: Parcelas la proporción del coste total de todos los elementos en la trama de datos en cada X1 - combinación X2
ggplot(df2, aes(x=factor(X1), y=factor(X2))) +
stat_sum(aes(group = 1, weight = cost))
Parcela 5: Traza proporciones, pero en lugar de que la proporción esté fuera del costo total en todos los elementos en el marco de datos, la proporción está fuera del costo para el ementos dentro de cada categoría de X1. Es decir, dentro de cada categoría X1, ¿dónde ocurre el mayor costo para las unidades X2?
ggplot(df2, aes(x=factor(X1), y=factor(X2))) +
stat_sum(aes(group = X1, weight = cost))
¿La respuesta a mi pregunta es la gráfica 3? – mb14
Lo siento, debería haberlo dicho. Sí. –