【发布时间】:2020-01-09 09:28:41
【问题描述】:
我有一个数据框 df
我想将每个 df$text 值转换为图像,并将其导出为图像。
我尝试将每个 df$text[i] 导出为 .txt 文件,然后导出为 .pdf,然后导出为图像,但在这种情况下,我得到了一个 A4 尺寸的图像,其中包含文本字符串。我想要的只是一张图片,它将被文本字符串 100% 覆盖。
有没有相关的函数可以将文本字符串直接转换成图片?
【问题讨论】:
标签: r image converters
我有一个数据框 df
我想将每个 df$text 值转换为图像,并将其导出为图像。
我尝试将每个 df$text[i] 导出为 .txt 文件,然后导出为 .pdf,然后导出为图像,但在这种情况下,我得到了一个 A4 尺寸的图像,其中包含文本字符串。我想要的只是一张图片,它将被文本字符串 100% 覆盖。
有没有相关的函数可以将文本字符串直接转换成图片?
【问题讨论】:
标签: r image converters
您可以使用基础 R 绘图。
例如,您可以创建一个函数textPlot,它将绘制您的字符串并保存它。然后您可以为数据集的每一行调用它:
textPlot <- function(plotname, string){
par(mar=c(0,0,0,0))
pdf(paste0(plotname, ".pdf"))
plot(c(0, 1), c(0, 1), ann = F, bty = 'n', type = 'n', xaxt = 'n', yaxt = 'n')
text(x = 0.5, y = 0.5, paste(string), cex = 4, col = "black", family="serif", font=2, adj=0.5)
dev.off()
}
如果您想更深入地了解正在发生的事情,请查看R - Plot Only Text
然后,调用textPlot('mytext', 'Hello World') 将图像mytext.pdf 保存在工作目录中:
【讨论】:
text() 函数中的cex 值以获得更大的字符串。但它不会适应您的字符串长度,除非您自己编写(例如,您可以根据字符串长度设置 cex 值作为解决方法)。