如何在 R 中导入的 jpeg 上绘制数据?
Posted
技术标签:
【中文标题】如何在 R 中导入的 jpeg 上绘制数据?【英文标题】:How do I draw data on an imported jpeg in R? 【发布时间】:2017-11-22 05:35:03 【问题描述】:我已经导入了一个 jpeg,我想将数据放在它的顶部(图片是一个栖息地,我有生活在该地区的动物的移动数据)。我希望创建与记录动物的位置相对应的线条。
到目前为止,我已经使用“readJPEG”导入了图像,并以这种方式可视化了我的数据(img = 我导入的 jpeg):
plot(1, type="n", xlim=c(100, 150), ylim=c(300, 350))
rasterImage(img,100, 300, 150, 350, interpolate = TRUE)
对如何在这张照片上绘制数据有任何帮助吗?我希望在可视化数据时简单地使用已经存在的坐标(即上面指示的 x 和 y 刻度标签)。
谢谢!
【问题讨论】:
那么您到底想添加什么?您应该可以使用points()
、lines()
、text()
等添加任何您想要的内容...
In R, how to plot with a png as background?的可能重复
或者这个:***.com/questions/4993189/…
或者这个:***.com/questions/5073386/…
【参考方案1】:
您可能会发现 Bioconductor 包中的函数EBImage 对处理图像很有帮助,因为它们可以让您免去设置正确坐标等繁琐的任务。使用@987654325 加载图像后@ 和 display
它,您可以使用 R 基础图形功能,如 points
、lines
、text
和类似的添加东西在上面。坐标设置为图像像素坐标,原点 (1,1) 位于左上角。以下示例取自package vignette。
library("EBImage")
f = system.file("images", "sample.png", package="EBImage")
img = readImage(f)
display(img, method="raster")
text(x = 20, y = 20, label = "Parrots", adj = c(0,1), col = "orange", cex = 2)
【讨论】:
以上是关于如何在 R 中导入的 jpeg 上绘制数据?的主要内容,如果未能解决你的问题,请参考以下文章