假设我创建了一个这样的情节:
plot(1:100, 201:300, col="red")
points(1:100, 221:320, col="green")
有没有办法在绘图上进行基本的位图样式颜色更改?像去饱和阴影使它变成单色(黑白),或者将绿色像素变成蓝色像素?
我正在寻找一种可应用于任何绘图窗口的通用方法。例如,如果绘图窗口包含彩色地图,我可能想将其更改为B& W.
答案 0 :(得分:0)
显然有很多很好的理由不在R中执行此操作,但您可以使用png
库来操作已发送到grDevices::png
设备的绘图:
png("test.png",600,400)
plot(1:100, 201:300, col="red")
points(1:100, 221:320, col="green")
dev.off()
require(png) # png library
p.0<-readPNG("test.png") # load image
# color switch
p.colshift<-p.0 # make a copy
p.colshift[,,2]<-p.0[,,3] # make G <- old B
p.colshift[,,3]<-p.0[,,2] # make B <- old G
writePNG(p.colshift,"test-colshift.png")
# desaturate
p.desat<-p.0 # make a copy
desatmap<-(p.0[,,1]+p.0[,,2]+p.0[,,3])/3 # get average of R,G,B (not alpha : ,,4)
lapply(1:3,function(x)p.desat[,,x]<<-desatmap) # set each of R,G,B to the "average" - equal results == greyscale
writePNG(p.desat,"test-desat.png")