如何在 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 基础图形功能,如 pointslinestext 和类似的添加东西在上面。坐标设置为图像像素坐标,原点 (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 上绘制数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何允许组件中的函数访问构造函数中导入的工厂?

如何对从包中导入的方法进行存根和间谍活动?

覆盖在命名空间中导入的函数

如何编写要在 SAS 中导入的原始数据

如何从 access 中导入的数据创建一组列表?

如何构建在unity/c#中导入的c++ dll