r - 将图像与 r 中的数据框连接起来

标签 r image dataframe jpeg r-grid

这可能是一个非常基本的问题,但我不熟悉 R 中的图像。

我想要一个 PDF文件使用两个连接的导入图像和一个数据框作为图像示例:

Final output

这是我正在使用但不起作用的代码。

library(grid)
library(useful)
library(magick)

# Read external images
imageA <- image_read("imageA.jpg") 
imageB <- image_read("imageB.jpg") 

# Create data frame
df <- data.frame(1:3)

# Create PDF
pdf("/Mydocument.pdf", width = 10, height = 20)
grid.newpage() 

# Create matrix layout
pushViewport(viewport(layout = grid.layout(1, 3)))

# Place elements inside grid
print(imageA, vp = vplayout(1, 1)) 
print(imageB, vp = vplayout(1, 2))
print(df, vp = vplayout(1, 3)) 

dev.off()

最佳答案

这段代码实现了你想要的:

require('magick')

# Read external images
frink = image_read("https://jeroen.github.io/images/frink.png")
logo = image_read("https://www.r-project.org/logo/Rlogo.png")
imgs = c(frink, logo)

# concatenate them left-to-right (use 'stack=T' to do it top-to-bottom)
side_by_side = image_append(imgs, stack=F)

# save the pdf
image_write(side_by_side, path = "just_a_test.pdf", format = "pdf")

这给出了这个图像:

enter image description here

您可能希望使用 image_scale(imgs, "x960") 垂直缩放图像- 改变 960任何你想要的高度,以像素为单位。

vignette of magick 解释了这一点以及更多:使用 R 处理图像是非常宝贵的资源。

注意:如果您仅将 R 用于连接图像,那么您就做错了:直接使用 convert img1.png img2.gif +append new_combined.pdf convert 的语法命令行工具。它附带 Image Magick 库,R magick package 是它的包装器。

但是,如果您对 R 有进一步的处理,那么您可以简单地将图像转换为 raster并继续使用它:as.raster(side_by_side)

关于r - 将图像与 r 中的数据框连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44960520/

相关文章:

r - 如何在 R 中的 3d 散点图上将 Plotly 中的轴居中?

javascript - 如何使用 highcharts 在服务器上保存图表图像?

python - 无法将类型 'Timestamp' 与类型 'int' 进行比较 - 减去数据集

Facebook 共享对话框不会在第一次加载时显示缩略图

r - 通过字符串匹配从其他数据框中查找特定值

python - 用 sklearn 解码 pandas 数据帧

mysql - dbEscapeStrings/concerto.updateState 中的错误 [协奏曲平台]

r - 相当于 data.table 中的 dlply

regex - "one or more occurrence"的 gitignore 等价物是什么?

php - 用 php imagemagick 画圆