Можно ли в R наложить 2 цвета на график, чтобы получился третий (например, с помощью аддитивного или субтрактивного смешивания цветов)

Я хотел бы построить диаграмму рассеяния с 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 = "")

В зависимости от того, как вы зададите вектор orders (который задает, в какую сторону будут рисоваться две большие точки), вы получите разные результаты: enter image description here

А если вы поменяете порядок построения двух окружностей местами, то получите: enter image description here

В любом случае, я предполагал смешать цвета, чтобы получить зеленый. Есть ли способ сделать это? Спасибо!

Edit - эти два графика были сделаны с помощью устройства pdf. Я также попробовал запустить код через tikzDevice, чтобы посмотреть, сработает ли это, но это не сработало.

20
задан Andrew 25 November 2011 в 13:18
поделиться