En este artículo, discutiremos cómo insertar o agregar una imagen en un gráfico usando ggplot2 en el lenguaje de programación R.
El método ggplot() de este paquete se usa para inicializar un objeto ggplot. Se puede usar para declarar el marco de datos de entrada para un gráfico y también se puede usar para especificar el conjunto de estética de la trama. La función ggplot() se usa para construir el objeto de trazado inicial y casi siempre va seguida de componentes para agregar al trazado.
Sintaxis:
ggplot(datos, mapeo = aes())
Parámetros:
- datos: el marco de datos utilizado para el trazado de datos
- mapeo: lista predeterminada de mapeos estéticos para usar en la trama.
Método 1: Usar el paquete patchwork
El paquete “jpeg” se utiliza para proporcionar una forma sencilla de realizar operaciones con imágenes JPEG, es decir, leer, escribir y mostrar imágenes de mapa de bits almacenadas en formato JPEG.
Sintaxis:
instalar.paquetes(“jpeg”)
El método readJPEG() de este paquete se usa para acceder a una imagen desde un archivo/contenido JPEG en una array de trama. Lee una imagen de mapa de bits en una imagen de trama nativa.
Sintaxis:
readJPEG(ruta, nativo = FALSO)
Parámetros:
- ruta: el nombre del archivo JPEG para acceder al espacio de trabajo.
- native – Indicador de la representación de la imagen. Si es VERDADERO, el resultado es una representación ráster nativa.
Otro paquete, «patchwork», permite una composición arbitrariamente compleja de parcelas al proporcionar operadores matemáticos para combinar varias parcelas. Se utiliza para la mejora y la construcción y el análisis de parcelas descriptivas. Está destinado principalmente a usuarios de ggplot2 y garantiza su correcta alineación.
Sintaxis:
install.packages(“mosaico”)
La función inset_element() de este paquete proporciona una forma de crear inserciones adicionales y le brinda control total sobre la ubicación y orientación de estas inserciones entre sí. El método marca los gráficos especificados como un recuadro que se agregará al gráfico anterior.
Sintaxis:
inset_element(p, izquierda, abajo, derecha, arriba)
Parámetro:
- p: un objeto grob, ggplot, patchwork, formula, raster o nativeRaster que se agregará como un recuadro al gráfico.
- izquierda, abajo, derecha, arriba: las posiciones de coordenadas para agregar p.
Ejemplo:
R
# loading the required libraries library("jpeg") library("ggplot2") library("patchwork") # defining the x coordinates xpos <- 1:5 # defining the y coordinates ypos <- xpos**2 data_frame = data.frame(xpos = xpos, ypos = ypos) print ("Data points") print (data_frame) # plotting the data graph <- ggplot(data_frame, aes(xpos, ypos)) + geom_point() # specifying the image path path <- "/Users/mallikagupta/Desktop/GFG/gfg.jpeg" # read the jpef file from device img <- readJPEG(path, native = TRUE) # adding image to graph img_graph <- graph + inset_element(p = img, left = 0.05, bottom = 0.65, right = 0.5, top = 0.95) # printing graph with image print (img_graph)
Producción
[1] "Data points" xpos ypos 1 1 1 2 2 4 3 3 9 4 4 16 5 5 25
Método 2: usar el paquete de cuadrícula
El paquete grid en R se ocupa de las funciones gráficas que se utilizan para la creación del sistema de trazado ggplot2.
Sintaxis:
install.packages («cuadrícula»)
El método rasterGrob() en R se usa para crear un objeto gráfico de imagen de trama en el espacio de trabajo. Toma como entrada la ruta de la imagen (ya sea PNG o JPEG) como primer argumento y la convierte en una imagen gráfica de trama.
Sintaxis:
rasterGrob (ruta, interpolar = VERDADERO)
El método qplot() en R se usa para crear un gráfico rápido que se puede usar como un envoltorio sobre varios otros métodos de creación de gráficos. Facilita la creación de gráficos complejos.
Sintaxis:
qplot(x, y=NULL, data, geom=”auto”, xlim = c(NA, NA), ylim =c(NA, NA))
Parámetros:
- coordenadas x, y – x e y
- datos: marco de datos que se utilizará
- geom – indicador del geom a ser utilizado
- xlim, ylim – límites de los ejes x e y
annotation_custom() se puede combinar con el método qplot(), que es un geom especial diseñado para usarse como anotaciones estáticas. Las escalas reales de las parcelas permanecen sin modificar usando esta opción.
Sintaxis:
annotation_custom(grob, xmin = -Inf, xmax = Inf, ymin = -Inf, ymax = Inf)
Parámetros:
- g – El grob para mostrar
- xlim, ylim – límites de los ejes x e y
Ejemplo:
R
# loading the required libraries library("jpeg") library("ggplot2") library("grid") # defining the x coordinates xpos <- 1:5 # defining the y coordinates ypos <- xpos**2 data_frame = data.frame(xpos = xpos, ypos = ypos) print ("Data points") print (data_frame) # specifying the image path path <- "/Users/mallikagupta/Desktop/GFG/gfg.jpeg" # read the jpef file from device img <- readJPEG(path, native = TRUE) # converting to raster image img <- rasterGrob(img, interpolate=TRUE) # plotting the data qplot(xpos, ypos, geom="blank") + annotation_custom(g, xmin=-Inf, xmax=Inf, ymin=-Inf, ymax=Inf) + geom_point()
Producción
[1] "Data points" xpos ypos 1 1 1 2 2 4 3 3 9 4 4 16 5 5 25