¿Cómo cambiar el orden de las barras en el gráfico de barras en R?

En este artículo, discutiremos cómo cambiar el orden de las barras en el gráfico de barras en el lenguaje de programación R. Podemos cambiar el orden de las barras usando dos gráficos ggplot y barplot.

Método 1: reordenación de Ggplot 

En primer lugar, cree un conjunto de datos de muestra y trace el gráfico-Manual. Ahora vamos a reordenarlos en consecuencia.

Conjunto de datos en uso:

Detalles del salario del empleado

El reordenamiento en ggplot se realiza mediante la función theme(). Dentro de esto, usamos axis.text.x con el valor apropiado para reordenar en consecuencia. Por defecto, geom_bar usa stat=”bin”. Esto hace que la altura de cada barra sea igual al número de casos en cada grupo. Si desea que las alturas de las barras representen valores en los datos, use stat=”identity” y asigne un valor a la estética y.

  • geom_bar() : Usar para los gráficos de barras

Sintaxis:

geom_bar( mapeo = NULL, data = NULL, stat = “contar”, color=’azul’; relleno=’amarillo’ ancho = NULL, na.rm = FALSO, orientación = NA, show.legend = NA,…,)

  • Tema: los temas se pueden usar para dar a las tramas un aspecto personalizado consistente.

Sintaxis:

tema( línea, rect, texto, título, relación de aspecto, eje.texto.x, eje.texto.x.superior, eje.texto.x.inferior,)

Parámetro:

  • línea: todos los elementos de línea (element_line())
  • rect :todos los elementos rectangulares (element_rect())
  • texto: todos los elementos de texto (element_text())
  • título :todos los elementos del título: diagrama, ejes, leyendas (elemento_texto(); hereda del texto)
  • aspect.ratio : relación de aspecto del panel.
  • axis.text.x : etiquetas junto con ejes (element_text()). Especificar todas las etiquetas de eje (axis.text), etiquetas

Ordenar manualmente

Para reordenar las barras manualmente, debe pasar stat=”identity” en la función geom_bar().

Ejemplo: 

R

library(ggplot2)
  
# Create the data frame.
gfg.data <- data.frame(
  GFG_Id = c (1:7), 
  GFG_Name = c("Damon","Joe","Jen","Ryan","Bonnie","Stefan","William"),
  GFG_Sal = c(6200,5152,6110,7290,8485,7654,2341))
print(gfg.data)
  
# GGPLOT
x <- ggplot(gfg.data, aes(x = GFG_Name, y = GFG_Sal))
  
x <- x + geom_bar(stat="identity", color='lightgreen',fill='lightgreen')
  
x <- x + theme(axis.text.x=element_text(angle=45, hjust=0.9))
x

Producción:

Reordenar en orden ascendente y descendente

La función de reordenación se utiliza aquí para cambiar el orden de los gráficos.

Sintaxis: 

ggplot(nombre del marco de datos, aes(x=reordenar(columna1,±columna2),y=columna2)

Aquí, si desea un orden ascendente, usará el signo más ‘+’, si desea un orden descendente, debe usar el signo menos ‘-‘.

Nota: Column2 debe ser la columna con datos numéricos.

Ejemplo: Primero mostremos el mismo gráfico de barras en orden ascendente.

R

library(ggplot2)
  
# Create the data frame.
gfg.data <- data.frame(
  GFG_Id = c (1:7), 
  GFG_Name = c("Damon","Joe","Jen","Ryan","Bonnie","Stefan","William"),
  GFG_Sal = c(6200,5152,6110,7290,8485,7654,2341))
  
print(gfg.data)
  
# GGPLOT
x <- ggplot(gfg.data, aes(x = reorder(GFG_Name, +GFG_Sal), y = GFG_Sal))
  
x <- x + geom_bar(stat="identity", color='red',fill='red')
  
x <- x + theme(axis.text.x=element_text(angle=45, hjust=0.9))
x

Producción:

Ejemplo: ahora veamos la gráfica ordenada descendente

R

library(ggplot2)
  
# Create the data frame.
gfg.data <- data.frame(
  GFG_Id = c (1:7), 
  GFG_Name = c("Damon","Joe","Jen","Ryan","Bonnie","Stefan","William"),
  GFG_Sal = c(6200,5152,6110,7290,8485,7654,2341))
  
print(gfg.data)
  
# GGPLOT
x <- ggplot(gfg.data, aes(x = reorder(GFG_Name, -GFG_Sal), y = GFG_Sal))
  
x <- x + geom_bar(stat="identity", color='violet',fill='violet')
  
x <- x + theme(axis.text.x=element_text(angle=45, hjust=0.9))
x

Producción:

Método 2: usar el reordenamiento de Barplot

En primer lugar, cree un conjunto de datos de muestra y trace el gráfico. Ahora veamos el reordenamiento de las barras.

Trama de datos en uso:

En R, función barplot()

Sintaxis:

barplot(altura, nombre.args = NULL, columna = NULL, principal = NULL)

Parámetro:

  • altura: puede especificar un vector o una array de valores.
  • name.args: un vector de nombres que desea trazar debajo de cada barra o grupo de barras en un gráfico de barras R.

Ordenar manualmente

Para pedidos manuales, pase el pedido al eje x mientras crea el marco de datos.

Ejemplo:

R

# Create the data for the chart
GFG_ID   <- c(1:7)
GFG_Sal  <- c(6200,5152,6110,7290,8485,7654,2341)
GFG_Name <- c("Dia","Joe","Rex","Ryan","Bex","Stef","Max")
X <- data.frame(GFG_ID,GFG_Name,GFG_Sal)
X
  
# Give the chart file a name
png(file = "barchart_months_salary.png")
  
# Plot the bar chart 
barplot(GFG_Sal,names.arg=GFG_Name,xlab="Employee Name",
        ylab="Salary Range",col="black",
main="Salary chart",border="Red")
  
# Save the file
dev.off()

Producción

Reordenar el gráfico en orden ascendente y descendente

La función utilizada aquí es el orden (el orden devuelve una permutación que reorganiza su primer argumento en orden ascendente o descendente)

Sintaxis –

order(…, na.last = VERDADERO, decreciente = FALSO)

Parámetro:

na.last: para controlar el tratamiento de NAs

Veamos primero la gráfica ordenada ascendente.

Ejemplo:

R

GFG_ID  <- (LETTERS[1:7])
GFG_Sal  <- c(6200,5152,6110,7290,8485,7654,2341)
  
data <- data.frame(GFG_Sal, GFG_ID)
  
barplot(data[order(data[,1],decreasing=FALSE),
        ][,1],names.arg=data[order(data[,1],decreasing=FALSE),]
        [,2],col="blue",xlab="Employee Name Initial Letter",
        ylab="Salary Range",main="Salary chart",border="black")

Producción

Ahora echemos un vistazo a la trama ordenada descendente.

Ejemplo:

R

GFG_ID  <- (LETTERS[1:7])
GFG_Sal  <- c(6200,5152,6110,7290,8485,7654,2341)
  
data <- data.frame(GFG_Sal, GFG_ID)
  
barplot(data[order(data[,1],decreasing=TRUE),
        ][,1],names.arg=data[order(data[,1],decreasing=TRUE),
        ][,2],col="blue",xlab="Employee Name Initial Letter",
        ylab="Salary Range",main="Salary chart",border="black")

Producción

Publicación traducida automáticamente

Artículo escrito por yashisrivastav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *