es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Podemos mostrar dos atributos en una sola leyenda de ggplot?

Leyendo sobre gráficos para datos ordinales encontré este gráfico: aquí

Gráfico

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)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para eliminar la leyenda redundante, podemos modificar las escalas de color y tamaño en el código de ggplot:

    ggplot(runningcounts.df, aes(importance, often)) +
      geom_point(aes(size = Freq, color = Freq, stat = "identity", position = "identity"), shape = 15) +
      scale_size(range = c(3,15), guide = FALSE) + 
      scale_color_gradient(low = "white", high = "black", guide = FALSE) +
      theme_nogrid()
    

    El argumento guide = FALSE elimina las leyendas de tamaño y color del gráfico. El gráfico resultante se verá así:

    Gráfico modificado

Comments are closed.