And*_*rew 20 graphics rgb r colors
我想用2类数据做一个散点图,一个用黄色绘制,一个用蓝色绘制,它们以绿色显示在它们叠加的位置(或任何其他组合).我发现即使透明度,事情也有点困难.图表的颜色受空间中绘制的最后一个点是蓝色还是黄色的影响.
例如,使用以下代码:
col1 <- rgb(red = .0, green = 0, blue = 0.8, alpha = 0.8)
col2 <- rgb(red = .8, green = 0.8, blue = 0, alpha = 0.8)
circle <- data.frame(x = c(0.2,0),
y = c(0,0),
col = c(col1, col2),
stringsAsFactors = F)
orders <- c(1,2)
plot(x = circle$x[orders], y = circle$y[orders],
col = circle$col[orders], pch = 19, cex = 100, xlab = "", ylab = "")
Run Code Online (Sandbox Code Playgroud)
根据您设置矢量的方式orders(设置绘制两个大点的方向),您会得到不同的结果:

如果你交换顺序绘制两个圆圈的顺序,你会得到:

无论哪种方式,我都期待混合颜色以获得绿色.有没有办法做到这一点?谢谢!
编辑 - 这两个图是使用pdf设备制作的.我也尝试通过tikzDevice运行代码,看看是否有效,但事实并非如此.
pdf()设备的帮助文件说背景的默认设置是"透明",虽然这在实践中似乎不是它的行为,可能是因为观看者假设是白色背景或者因为绘图函数的默认设置是"白色".中间部分首先变成白色和绿色相等混合的颜色,然后第二个然后加上蓝色.所以我猜测数学会预测rgb值为(0.5,0.5,(0.5 + 0.8)/ 2),然后将混合物与叠加的颜色混合我认为白色+ col1以相等的比例添加到来自col2的值使得数学不可交换.无论如何,如果您可以强制背景"透明",最终结果可能会有所不同.默认行为更像是混合涂料而不是像闪亮的剧院灯.
PDF颜色模型在http://www.adobe.com/devnet/pdf/pdf_reference.html中有所描述,它将决定您对pdf设备的期望(但不一定是观众将提供的内容).
我通过将背景更改为"黑色"来测试我的理论,即白色背景是问题(并且似乎已经反驳了它),希望层叠的rgb向量没有附加值:
pdf("testfil12rev.pdf", bg="black")
col1 <- rgb(red = .0, green = 0, blue = 1, alpha = 0.5)
col2 <- rgb(red = 1, green = 0, blue = 0, alpha = 0.5)
circle <- data.frame(x = c(0.2,0),
y = c(0,0),
col = c(col1, col2),
stringsAsFactors = F)
orders <- c(1,2)
plot(x = circle$x[orders], y = circle$y[orders], bg="black",
col = circle$col[orders], pch = 19, cex = 100, xlab = "", ylab = "")
dev.off()
Run Code Online (Sandbox Code Playgroud)
反转"订单"指标也不会产生具有黑色背景的相同混合颜色.
编辑:有一个先前的SO帖子,其中包含混合颜色和alpha的规则:如何通过指定alpha混合量来计算RGB颜色?