在R中的同一张图中绘制图像和点云

问题描述 投票:0回答:1

我想在一张图中绘制点云、x和y的数据以及R中的图像。 我知道如何在 Python 中做到这一点,但找不到 imshow 的类似物。

我使用 rasterimage 函数和绘图,但它们会生成 2 个图像。我需要一个。我想将第二个绘制在第一个上方。 这是我尝试过的,其中 mydata 是 kx2 dataframe

 plot(1:400, ty="n")
 Picture <- readPNG("image.png")
 rasterImage(Picture(1,1,50,50))
 plot(mydata)

我也尝试过

Picture <- readPNG("image.png")
p <-  as_ggplot(rasterImage(Picture(1,1,50,50)+plot(mydata))

p 但这也不起作用并产生空图像。

r image plot visualization
1个回答
0
投票

rasterImage()
函数默认添加到当前绘图。 但是,它接受栅格对象,因此您需要使用
readPNG()
转换通过
as.raster()
读取的内容。

首先,生成数据并读入图像:

library(png)

set.seed(1) # for reproducibility
mydata <- data.frame(x=1:10, y=rnorm(10))
Picture <- readPNG("cat.png")

然后绘制数据,添加栅格,如果需要,重新添加顶部的点(或者仅使用

type='n'
绘制以获得正确的窗口,然后添加)。

plot(mydata, ylim=c(-5,5))


rasterImage(image = as.raster(Picture),
            xleft = 1, xright = 5,
            ybottom = 0, ytop = 5)

# re-add the points on top if you wish
points(mydata)

这产生了

plot

对于未来的问题,一个最小的工作示例可以让人们更轻松地提供帮助。

© www.soinside.com 2019 - 2024. All rights reserved.