Gráfico de líneas usando ggplot2 en R

En un gráfico de líneas, tenemos el valor del eje horizontal a través del cual se ordenará y conectará la línea utilizando los valores del eje vertical. Vamos a usar el paquete R ggplot2 que tiene varias capas. 

Primero, debe instalar el paquete ggplot2 si no se instaló previamente en R Studio. 

Función utilizada:

  • geom_line los conecta en el orden de la variable en el eje horizontal (x).

Sintaxis:

geom_line(mapping=NULL, data=NULL, stat=”identidad”, position=”identidad”,…)

  • geom_path conecta la observación en el mismo orden que en los datos

Sintaxis:

geom_path(mapping=NULL, data=NULL, stat=”identidad”, position=”identidad”,…)

Trazado de una sola línea

En esta sección, trataremos con un gráfico de una sola línea y también discutiremos varios atributos que ayudan a su apariencia.

Conjunto de datos en uso:

R

# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
                num=c(77,55,80,60))
head(val)

Producción:

Gráfica de línea básica

Para un gráfico de líneas simple, los datos se pasan aproximadamente a la función con algunos atributos requeridos. 

Ejemplo:

R

library(ggplot2)
  
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
                num=c(77,55,80,60))
  
# Basic Line
ggplot(data=val, aes(x=course, y=num, group=1)) +
  geom_line()+
  geom_point()

Producción:

Línea de formato

  • Tipo de línea

Para esto, se utiliza el tipo de línea de comandos . ggplot2 proporciona varios tipos de línea. Por ejemplo: punteado, dos guiones, guiones, etc. Este atributo se pasa con un valor obligatorio.

Ejemplo:

R

library(ggplot2)
  
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
                num=c(77,55,80,60))
  
# Format the line type
ggplot(data=val, aes(x=course, y=num, group=1)) +
  geom_line(linetype = "dotted")+
  geom_point()

Producción:

  • Color de linea

Se usa el comando color y el color deseado se escribe entre comillas dobles [” “] dentro de geom_line().

Ejemplo:

R

library(ggplot2)
  
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
                num=c(77,55,80,60))
  
# Format the line color
ggplot(data=val, aes(x=course, y=num, group=1)) +
  geom_line(color="green")+
  geom_point()

Producción:

  • Tamaño de línea

El tamaño de la línea se puede cambiar usando el comando size y proporcionando el valor del tamaño dentro de geom_line().

Ejemplo:

R

library(ggplot2)
  
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
                num=c(77,55,80,60))
  
# Format the line size
ggplot(data=val, aes(x=course, y=num, group=1)) +
  geom_line(color="green",size=1.5)+
  geom_point()

Producción:

Agregar título de gráfico, título de eje

Se puede usar ggtitle() con el título apropiado para agregar el título del gráfico y se pueden usar los laboratorios nuevamente con la entrada adecuada para agregar el título de los ejes.

Ejemplo:

R

library(ggplot2)
  
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
                num=c(77,55,80,60))
  
# Adding titles
line<-ggplot(data=val, aes(x=course, y=num, group=1)) +
  geom_line(color="green",size=1.5)+
  geom_point()
  
line+ggtitle("Courses vs Students Enrolled in GeeksforGeeks")+
  labs(x="Courses",y="Number of Students")

Producción:

Cambiar el tema

Use theme_theme_name() para agregar el tema. Hay muchos temas disponibles en la biblioteca R. Por ejemplo: oscuro, clásico, etc. Los valores se pueden proporcionar según se desee.

Ejemplo:

R

library(ggplot2)
  
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
                num=c(77,55,80,60))
  
# Adding titles
line<-ggplot(data=val, aes(x=course, y=num, group=1)) +
  geom_line(color="green",size=1.5)+
  geom_point()
  
line+ggtitle("Courses vs Students Enrolled in GeeksforGeeks")+
  labs(x="Courses",y="Number of Students")+
  theme_dark()

Producción:

Agregando flecha

Para agregar una flecha en línea, se usa la biblioteca de cuadrículas . Luego, para agregar flechas, use la flecha ( ) para agregar una flecha. También es posible cambiar los parámetros en una flecha como ángulo, tipo, extremos. 

Ejemplo:

R

library(ggplot2)
library(grid)
  
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
                num=c(77,55,80,60))
  
# Adding an arrow
ggplot(data=val, aes(x=course, y=num, group=1)) +
  geom_line(arrow=arrow())+
  geom_point()
  
# Adding  closed arrow on both ends of the line
arr=arrow(angle = 20, ends = "both", type = "closed")
ggplot(data=val, aes(x=course, y=num, group=1)) +
  geom_line(arrow=arr)+
  geom_point()

Producción:

Adición de etiquetas de datos

Use la etiqueta para obtener los valores en el eje y y nudge_y para colocar la etiqueta de datos.

Ejemplo:

R

library(ggplot2)
  
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
                num=c(77,55,80,60))
  
# Adding data label
ggplot(data=val, aes(x=course, y=num, group=1, label=num)) +
  geom_line()+
  geom_point()+
  geom_text(nudge_y = 2)

Producción:

Eje de escala:

Use xlim( ) para cambiar la escala del eje x e ylim( ) para cambiar la escala del eje y y pasarles los valores apropiados. 

Sintaxis:

xlim(mínimo,máximo)

ylim(mínimo,máximo)

Ejemplo:

R

library(ggplot2)
  
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
                num=c(77,55,80,60))
  
# Storing the line plot
ln <-ggplot(data=val, aes(x=course, y=num, group=1)) +
  geom_line(color="green",size=2)+
  geom_point()
  
# y-axis limits
ln+ylim(0,100)+
theme_dark()

Producción:

Trazado de líneas múltiples

Para graficar múltiples gráficos en uno, nada cambia, excepto que el atributo de grupo debe establecerse en el nombre de la columna sobre la base de la cual se dibujarán las diferentes líneas.

Ejemplo:

R

library(ggplot2)
  
# Inserting data
vacc <- data.frame(type=rep(c("Covishield", "Covaxin"), each=2),
                  dose=rep(c("D1", "D2"),2),
                  slots=c(33, 45, 66, 50))
  
# Plotting line with multiple groups
ggplot(data=vacc, aes(x=dose, y=slots, group=type)) +
  geom_line(linetype="longdash", color="green", size=1.5)+
  geom_point(color="red", size=5)+
  theme_dark()

Producción:

También puede agregar títulos, títulos de ejes, etiquetas de datos en el diagrama de líneas anterior, como se explicó en la sección anterior.

Formateo de la trama:

  • Usar tipos de línea separados basados ​​en grupos 

Para diferenciar las líneas cambiando el tipo de línea, proporcione el tipo de línea en geom_line() y la forma de la leyenda en geom_point().

Ejemplo:

R

library(ggplot)
  
# Inserting data
vacc <- data.frame(type=rep(c("Covishield", "Covaxin"), each=2),
                  dose=rep(c("D1", "D2"),2),
                  slots=c(33, 45, 66, 50))
  
# Changing the line type on the basis of groups
ggplot(vacc, aes(x=dose, y=slots, group=type)) +
  geom_line(aes(linetype=type))+
  geom_point()+
  theme_classic()
  
# Changing the line type on the basis of groups and also the shape of points
ggplot(vacc, aes(x=dose, y=slots, group=type)) +
  geom_line(aes(linetype=type))+
  geom_point(aes(shape=type))+
  theme_classic()

Producción:

  • Asignación de diferentes colores de línea sobre la base de grupos 

El siguiente código controla automáticamente el color utilizando el nivel de la variable «tipo». Asignará colores separados a cada línea.

Ejemplo:

R

library(ggplot2)
  
# Inserting data
vacc <- data.frame(type=rep(c("Covishield", "Covaxin"), each=2),
                  dose=rep(c("D1", "D2"),2),
                  slots=c(33, 45, 66, 50))
  
# Change line color by group type of vaccine
ln <-ggplot(vacc, aes(x=dose, y=slots, group=type)) +
  geom_line(aes(color=type))+
  geom_point(aes(color=type))+
  theme_classic()
ln

Producción:

Para ingresar el color manualmente, puede usar:

  • scale_color_brewer( ) : Utiliza diferentes paletas de colores del paquete RColorBrewer. Tiene varias paletas de colores.
  • scale_color_manual( ) : Se utiliza para agregar manualmente colores discretos.

Ejemplo:

R

library(ggplot2)
  
# Inserting data
vacc <- data.frame(type=rep(c("Covishield", "Covaxin"), each=2),
                  dose=rep(c("D1", "D2"),2),
                  slots=c(33, 45, 66, 50))
  
# Change line color by group type of vaccine
ln <-ggplot(vacc, aes(x=dose, y=slots, group=type)) +
  geom_line(aes(color=type))+
  geom_point(aes(color=type))+
  theme_classic()
  
# Adding line colors using brewer color palette
ln+scale_color_brewer(palette="Set2")
  
# Adding line colors using color manual
ln+scale_color_manual(values=c("green", "blue"))

Producción:

  • Cambiar la posición de las leyendas 

Para cambiar la posición de la leyenda, el atributo legen.position de la función del tema se pasa con el valor requerido.

Sintaxis:

tema(leyenda.posición=”pos”)

pos Puede ser superior, derecha, inferior, izquierda o ninguna

Ejemplo:

R

library(ggplot2)
  
# Inserting data
vacc <- data.frame(type=rep(c("Covishield", "Covaxin"), each=2),
                  dose=rep(c("D1", "D2"),2),
                  slots=c(33, 45, 66, 50))
  
# Change line color by group type of vaccine
ln <-ggplot(vacc, aes(x=dose, y=slots, group=type)) +
  geom_line(aes(color=type))+
  geom_point(aes(color=type))+
  theme_classic()
  
ln <- ln + scale_color_brewer(palette="Dark2")+
  theme_classic()
  
# Legend at top
ln + theme(legend.position="top")
  
# Legend at left
ln + theme(legend.position="left")
  
# Remove legend
ln + theme(legend.position="none")

Producción:

Publicación traducida automáticamente

Artículo escrito por rishabhchakrabortygfg 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 *