📜  如何将图像添加到 R 中的 ggplot2?

📅  最后修改于: 2022-05-13 01:55:43.031000             🧑  作者: Mango

如何将图像添加到 R 中的 ggplot2?

在本文中,我们将讨论如何使用 R 编程语言中的 ggplot2 将图像插入或添加到绘图中。

这个包的 ggplot() 方法用于初始化一个 ggplot 对象。它可用于声明图形的输入数据框,也可用于指定绘图美学集。 ggplot()函数用于构造初始绘图对象,并且几乎总是跟随着要添加到绘图中的组件。

方法一:使用patchwork包

“jpeg”包用于提供一种对 JPEG 图像执行操作的简单方法,即读取、写入和显示以 JPEG 格式存储的位图图像。

句法:

此包的 readJPEG() 方法用于将图像从 JPEG 文件/内容访问到光栅数组。它将位图图像读取到本机 rasterImage 中。

另一个包“patchwork”通过提供用于组合多个图的数学运算符来允许任意复杂的图组合。它用于增强和描述性地块构建和分析。它主要面向 ggplot2 的用户,并确保其正确对齐。



句法:

该包的 inset_element()函数提供了一种创建附加插图的方法,并让您可以完全控制这些插图相对于彼此的位置和方向。该方法将指定的图形标记为要添加到前图中的插图。

例子:

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)


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()


输出

[1] "Data points" 
   xpos ypos 
1    1    1 
2    2    4 
3    3    9 
4    4   16 
5    5   25



方法二:使用grid包

R 中的 grid 包与用于创建 ggplot2 绘图系统的图形函数有关。

句法:

R 中的 rasterGrob() 方法用于在工作空间中创建光栅图像图形对象。它将图像路径(PNG 或 JPEG)作为第一个参数作为输入,并将其转换为光栅图形图像。

句法:

R 中的 qplot() 方法用于创建快速绘图,该绘图可用作各种其他创建绘图方法的包装器。它可以更轻松地创建复杂的图形。

annotation_custom() 可以与 qplot() 方法结合使用,这是一种特殊的几何图形,旨在用作静态注释。使用此选项,绘图的实际比例保持不变。

例子:

电阻

# 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()

输出

[1] "Data points"
  xpos ypos
1    1    1
2    2    4
3    3    9
4    4   16
5    5   25