4

有没有办法将图像插入到 R 的绘图中并在我这样做时设置它的颜色?我想为给定的数据集插入一个轮廓,并将其设置为与我为绘制相应数据点选择的颜色相匹配。我对如何管理图形没有深入的了解——在一般的计算机系统和 R 中——这可能会为这个问题的答案提供信息。

下面的代码将插入图像,但我想不出改变颜色的方法。

require(jpeg)
thiscolor <- "red"
plot(x=c(1, 4), y=c(1, 2), main="test plot", col=thiscolor)
thispic <- readJPEG(<insert path for any image here>)
rasterImage(thispic, 
        xleft=3, xright=3.5, 
        ytop=2, ybottom=1.8,
)
4

2 回答 2

3

我不明白你在这里所说的剪影是什么意思。但对我来说,光栅是颜色矩阵。所以你可以改变它的颜色。这里有一个演示。我正在使用,grid.raster来自grid包装。但它与rasterImage

这里有一个例子:

library(png)
library(grid)
img <- readPNG(system.file("img", "Rlogo.png", package="png"))
## convert it to a raster, interpolate =F to select only sample of pixels of img
img.r <- as.raster(img,interpolate=F)
## Change all the white to a blanck
img.r[img.r == "#00000000"] <- 'red'
plot.new()
grid.raster(img.r)

在此处输入图像描述

于 2013-02-27T20:54:00.667 回答
1

太感谢了!

因为我使用的是 R 颜色名称,所以我不得不进行一些(不优雅的)颜色转换。但你的代码正是我需要的!谢谢!

 #convert image to raster 
 thispic.r <- as.raster(thispic)
 #get the hex color
 rgbratios <- col2rgb(thiscolor)/255
 thiscolorhex <- rgb(red=rgbratios[1], 
                         green=rgbratios[2], 
                         blue=rgbratios[3])
 #convert the non-white part of the image to the hex color
 thispic.r[thispic.r!="#FFFFFF"] <- thiscolorhex
 #plot it
 grid.raster(thispic.r, x=xval, y=yval, just="center")
于 2013-07-05T14:50:14.350 回答