R 是否对打印窗口进行基本位图颜色更改?
假设我创建了这样一个情节:R 是否对打印窗口进行基本位图颜色更改?,r,R,假设我创建了这样一个情节: plot(1:100, 201:300, col="red") points(1:100, 221:320, col="green") 有没有办法在绘图上进行基本位图样式的颜色更改?例如,将绘图去饱和以使其单色(黑白),或将绿色像素更改为蓝色像素 我正在寻找一种通用的方法,可以应用于任何绘图窗口。例如,如果plot窗口包含彩色地图,我可能希望将其更改为B&W。显然有很多很好的理由不在R中执行此操作,但您可以使用png库来操作发送到grDevices::png设备的绘
plot(1:100, 201:300, col="red")
points(1:100, 221:320, col="green")
有没有办法在绘图上进行基本位图样式的颜色更改?例如,将绘图去饱和以使其单色(黑白),或将绿色像素更改为蓝色像素
我正在寻找一种通用的方法,可以应用于任何绘图窗口。例如,如果plot窗口包含彩色地图,我可能希望将其更改为B&W。显然有很多很好的理由不在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
png(“test.png”,600400)
绘图(1:100201:300,col=“红色”)
点数(1:100221:320,col=“绿色”)
发展主任()
需要(png)#png库
p、 0AFAIK在创建绘图后,R绘图包并不能真正处理此类问题。您可能需要研究导出到?svg
,并在Inkscape等外部包中应用过滤器和编辑。一旦我将其转换为PNG,坐标系就消失了,对吗?理想情况下,我希望转换为黑白,并且仍然保留坐标系,以便继续绘图。例如,对于贴图,我想将彩色底图转换为黑白,然后在顶部绘制颜色线。实际上,我认为在“底图”plot
中没有一种简单的方法可以按颜色进行绘制,因为绘制的是对象而不是像素。最快的方法可能是对点进行过多标记:点(1:100221:320,col=“blue”)
以蓝色代替绿色。在ggplot2
中,可以使用ggplot\u build()
查看对象内部并动态替换/调整颜色。
# 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")