¿Podemos mostrar dos atributos en una sola leyenda de ggplot?
Leyendo sobre gráficos para datos ordinales encontré este gráfico: aquí
Encuentro la leyenda redundante ya que una frecuencia pequeña de 10, por ejemplo, siempre es un cuadrado pequeño y un cuadrado claro, y así sucesivamente. Por lo tanto, me gustaría crear un gráfico con una leyenda como esta (solución de pintura): aquí
Código para recrear el gráfico:
# DATA
importance <- rep(1:5, times = c(30, 42, 75, 93, 60))
often <- c(rep(1:5, times = c(15, 07, 04, 03, 01)), #n=30, importance 1
rep(1:5, times = c(10, 14, 12, 03, 03)), #n=42, importance 2
rep(1:5, times = c(12, 23, 20, 13, 07)), #n=75, importance 3
rep(1:5, times = c(16, 14, 20, 30, 13)), #n=93, importance 4
rep(1:5, times = c(12, 06, 11, 17, 14))) #n=60, importance 5
running.df <- data.frame(importance, often)
runningcounts.df <- as.data.frame(table(importance, often))
# PLOT
theme_nogrid <- function (base_size = 12, base_family = "") {
theme_bw(base_size = base_size, base_family = base_family) %+replace%
theme(panel.grid = element_blank())
}
ggplot(runningcounts.df, aes(importance, often)) +
geom_point(aes(size = Freq, color = Freq, stat = "identity", position = "identity"), shape = 15) +
scale_size_continuous(range = c(3,15)) +
scale_color_gradient(low = "white", high = "black") +
theme_nogrid()
(Note: The code and output have not been translated)
davy.ai
Para eliminar la leyenda redundante, podemos modificar las escalas de color y tamaño en el código de ggplot:
El argumento
guide = FALSE
elimina las leyendas de tamaño y color del gráfico. El gráfico resultante se verá así: