在 r 中加入带有数据框的图像
Join images with data frames in r
这可能是一个非常基础的问题,但我对R中的图像不熟悉。
我想要一个 PDF 文件,其中包含两个合并的导入图像和一个数据框,如图像所示:
这是我正在使用但不起作用的代码。
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")
给出这张图片:
您可能希望使用 image_scale(imgs, "x960")
垂直缩放图像 - 将 960
更改为您想要的任何高度(以像素为单位)。
vignette of magick
解释了这一点以及更多内容:它是使用 R 处理图像的非常宝贵的资源。
注意:如果您使用 R 的唯一目的是连接图像,那么您做错了:直接使用 convert
命令行工具的 convert img1.png img2.gif +append new_combined.pdf
语法。它与 Image Magick 库一起提供,R magick
包是它的包装器。
但是如果您对 R 有进一步的处理,那么您可以简单地将图像转换为 raster
并继续使用它:as.raster(side_by_side)
这可能是一个非常基础的问题,但我对R中的图像不熟悉。
我想要一个 PDF 文件,其中包含两个合并的导入图像和一个数据框,如图像所示:
这是我正在使用但不起作用的代码。
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")
给出这张图片:
您可能希望使用 image_scale(imgs, "x960")
垂直缩放图像 - 将 960
更改为您想要的任何高度(以像素为单位)。
vignette of magick
解释了这一点以及更多内容:它是使用 R 处理图像的非常宝贵的资源。
注意:如果您使用 R 的唯一目的是连接图像,那么您做错了:直接使用 convert
命令行工具的 convert img1.png img2.gif +append new_combined.pdf
语法。它与 Image Magick 库一起提供,R magick
包是它的包装器。
但是如果您对 R 有进一步的处理,那么您可以简单地将图像转换为 raster
并继续使用它:as.raster(side_by_side)