Un gráfico de barras es una excelente manera de mostrar variables categóricas en el eje x. Este tipo de gráfico denota dos aspectos en el eje y.
- El primero cuenta el número de ocurrencias entre grupos.
- El segundo muestra una estadística de resumen (mínimo, máximo, promedio, etc.) de una variable en el eje y.
Utilizará el conjunto de datos mtcars con las siguientes variables:
- cyl: Número del cilindro en el automóvil. Variable numérica
- am: Tipo de transmisión. 0 para automático y 1 para manual. Variable numérica
- mpg: Millas por galón. Variable numérica
En este tutorial, aprenderá
- Cómo crear un gráfico de barras
- Cambiar el color de las barras
- Cambiar la intensidad
- Color por grupos
- Agregar un grupo en las barras
- Gráfico de barras en porcentaje
- Barras de lado a lado
- Histograma
Cómo crear un gráfico de barras
Para crear un gráfico en R, puede usar la biblioteca ggplot, que crea gráficos listos para su publicación. La sintaxis básica de esta biblioteca es:
ggplot(data, mapping = aes()) +geometric objectarguments:data: dataset used to plot the graphmapping: Control the x and y-axisgeometric object: The type of plot you want to show. The most common objects are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`
En este tutorial, está interesado en el objeto geométrico geom_bar () que crea el gráfico de barras.
Gráfico de barras: recuento
Su primer gráfico muestra la frecuencia del cilindro con geom_bar (). El siguiente código es la sintaxis más básica.
library(ggplot2)# Most basic bar chartggplot(mtcars, aes(x = factor(cyl))) +geom_bar()
Explicación del código
- Pasas el conjunto de datos mtcars a ggplot.
- Dentro del argumento aes (), agrega el eje x como una variable de factor (cyl)
- El signo + significa que desea que R siga leyendo el código. Hace que el código sea más legible al romperlo.
- Utilice geom_bar () para el objeto geométrico.
Producción:
Nota : asegúrese de convertir las variables en un factor; de lo contrario, R trata las variables como numéricas. Vea el ejemplo a continuación.
Personaliza el gráfico
Se pueden pasar cuatro argumentos para personalizar el gráfico:
- `stat`: Control the type of formatting. By default, `bin` to plot a count in the y-axis. For continuous value, pass `stat = "identity"`- `alpha`: Control density of the color- `fill`: Change the color of the bar- `size`: Control the size the bar
Cambiar el color de las barras
Puede cambiar el color de las barras. Tenga en cuenta que los colores de las barras son todos similares.
# Change the color of the barsggplot(mtcars, aes(x = factor(cyl))) +geom_bar(fill = "coral") +theme_classic()
Explicación del código
- Los colores de las barras están controlados por el mapeo aes () dentro del objeto geométrico (es decir, no en el ggplot ()). Puede cambiar el color con los argumentos de relleno. Aquí, eliges el color coral.
Producción:
Puedes usar este código:
grDevices::colors()
para ver todos los colores disponibles en R. Hay alrededor de 650 colores.
Cambiar la intensidad
Puede aumentar o disminuir la intensidad del color de las barras.
# Change intensityggplot(mtcars,aes(factor(cyl))) +geom_bar(fill = "coral",alpha = 0.5) +theme_classic()
Explicación del código
- Para aumentar / disminuir la intensidad de la barra, puede cambiar el valor del alfa. Un alfa grande aumenta la intensidad y un alfa bajo reduce la intensidad. alfa varía de 0 a 1. Si es 1, entonces el color es el mismo que el de la paleta. Si es 0, el color es blanco. Eliges alfa = 0,1.
Producción:
Color por grupos
Puede cambiar los colores de las barras, es decir, un color diferente para cada grupo. Por ejemplo, la variable cyl tiene tres niveles, luego puede trazar el gráfico de barras con tres colores.
# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()
Explicación del código
- El argumento relleno dentro de aes () permite cambiar el color de la barra. El color se cambia configurando fill = variable de eje x. En su ejemplo, la variable del eje x es cyl; relleno = factor (cilindros)
Producción:
Agregar un grupo en las barras
Puede dividir aún más el eje y en función de otro nivel de factor. Por ejemplo, puede contar el número de transmisión automática y manual según el tipo de cilindro.
Procederá de la siguiente manera:
- Paso 1: crea el marco de datos con el conjunto de datos mtcars
- Paso 2: Etiquete la variable am con auto para transmisión automática y man para transmisión manual. Convierta am y cyl como factor para que no necesite usar factor () en la función ggplot ().
- Paso 3: trazar el gráfico de barras para contar el número de transmisión por cilindro
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))
Tiene el conjunto de datos listo, puede trazar el gráfico;
# Paso 3
ggplot(data, aes(x = cyl, fill = am)) +geom_bar() +theme_classic()
Explicación del código
- El ggpplot () contiene los datos del conjunto de datos y el aes ().
- En el aes () incluye la variable del eje x y qué variable se requiere para llenar la barra (es decir, am)
- geom_bar (): crea el gráfico de barras
Producción:
El mapeo llenará la barra con dos colores, uno para cada nivel. Es fácil cambiar el grupo eligiendo otras variables de factor en el conjunto de datos.
Gráfico de barras en porcentaje
Puede visualizar la barra en porcentaje en lugar del recuento sin procesar.
# Gráfico de barras en porcentaje
ggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = "fill") +theme_classic()
Explicación del código
- Use position = "fill" en el argumento geom_bar () para crear un gráfico con porcentaje en el eje y.
Producción:
Barras de lado a lado
Es fácil trazar el gráfico de barras con la variable de grupo una al lado de la otra.
# Bar chart side by sideggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = position_dodge()) +theme_classic()
Explicación del código
- position = position_dodge (): explica explícitamente cómo organizar las barras
Producción:
Histograma
En la segunda parte del tutorial de gráfico de barras, puede representar el grupo de variables con valores en el eje y.
Su objetivo es crear un gráfico con el promedio de millas por galón para cada tipo de cilindro. Para dibujar un gráfico informativo, seguirá estos pasos:
- Paso 1: cree una nueva variable con el promedio de millas por galón por cilindro
- Paso 2: crea un histograma básico
- Paso 3: cambia la orientación
- Paso 4: cambia el color
- Paso 5: cambia el tamaño
- Paso 6: agregue etiquetas al gráfico
Paso 1) Crea una nueva variable
Usted crea un marco de datos llamado data_histogram que simplemente devuelve el promedio de millas por galón por el número de cilindros en el automóvil. Llamas a esta nueva variable mean_mpg y redondeas la media con dos decimales.
# Paso 1
data_histogram <- mtcars % > %mutate(cyl = factor(cyl)) % > %group_by(cyl) % > %summarize(mean_mpg = round(mean(mpg), 2))
Paso 2) Crea un histograma básico
Puede trazar el histograma. No está listo para comunicarse para ser entregado al cliente pero nos da una intuición sobre la tendencia.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity")
Explicación del código
- El aes () tiene ahora dos variables. La variable cyl se refiere al eje x, y mean_mpg es el eje y.
- Debe pasar el argumento stat = "identity" para hacer referencia a la variable en el eje y como un valor numérico. geom_bar usa stat = "bin" como valor predeterminado.
Producción:
Paso 3) Cambia la orientación
Cambia la orientación del gráfico de vertical a horizontal.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity") +coord_flip()
Explicación del código
- Puede controlar la orientación del gráfico con coord_flip ().
Producción:
Paso 4) Cambiar el color
Puede diferenciar los colores de las barras según el nivel de factor de la variable del eje x.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity") +coord_flip() +theme_classic()
Explicación del código
- Puede trazar el gráfico por grupos con el mapeo fill = cyl. R se ocupa automáticamente de los colores en función de los niveles de la variable de ciclo
Producción:
Paso 5) Cambiar el tamaño
Para que el gráfico se vea más bonito, reduce el ancho de la barra.
graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity",width = 0.5) +coord_flip() +theme_classic()
Explicación del código
- El argumento de ancho dentro de geom_bar () controla el tamaño de la barra. Un valor más grande aumenta el ancho.
- Tenga en cuenta que almacena el gráfico en el gráfico de variables. Lo hace porque el siguiente paso no cambiará el código del gráfico variable. Mejora la legibilidad del código.
Producción:
Paso 6) Agregue etiquetas al gráfico
El último paso consiste en agregar el valor de la variable mean_mpg en la etiqueta.
graph +geom_text(aes(label = mean_mpg),hjust = 1.5,color = "white",size = 3) +theme_classic()
Explicación del código
- La función geom_text () es útil para controlar la estética del texto.
- label =: agrega una etiqueta dentro de las barras
- mean_mpg: usa la variable mean_mpg para la etiqueta
- solo controla la ubicación de la etiqueta. Los valores cerrados a 1 muestran la etiqueta en la parte superior de la barra, y los valores más altos llevan la etiqueta al final. Si la orientación del gráfico es vertical, cambie hjust por vjust.
- color = "blanco": Cambia el color del texto. Aquí usas el color blanco.
- size = 3: establece el tamaño del texto.
Producción:
Resumen
Un gráfico de barras es útil cuando el eje x es una variable categórica. El eje y puede ser un recuento o una estadística de resumen. La siguiente tabla resume cómo controlar el gráfico de barras con ggplot2:
Objetivo |
código |
---|---|
Contar |
ggplot(df, eas(x= factor(x1)) + geom_bar() |
Cuente con diferente color de relleno |
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar() |
Cuente con grupos, apilados |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Cuente con grupos, uno al lado del otro |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar() |
Contar con grupos, apilados en% |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Valores |
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity") |