Просматривая plot.VennDiagram
и его значения по умолчанию, вы можете увидеть, как он преобразует числа в y$colors
в цветовые строки rgb.(Попробуйте getAnywhere("plot.VennDiagram")
посмотреть самим.)
Здесь я собрал два бита кода, которые обрабатывали цвета (в вашем случае), в одну функцию, которая сделает преобразование за вас.Возможно, положение легенды можно улучшить, но это еще одна проблема ...
col.fn <- function(col, alpha=0.3) {
col<- hcl(col * 360, 130, 60)
col <- col2rgb(col)/255
col <- rgb(col[1, ], col[2, ], col[3, ], alpha)
col
}
COL <- col.fn(y$colors)
# The original order of columns in x is jumbled in the object returned
# by venneuler. This code is needed to put the colors and labels back
# in the original order (here alphabetical).
LABS <- y$labels
id <- match(colnames(x), LABS)
plot(y)
legend(.05, .9, legend = LABS[id], fill = COL[id], x="topleft")