Добавьте альфа-значение к функции панели решетки xyplot - PullRequest
0 голосов
/ 01 мая 2018

Я хочу назначить два альфа-значения в функции панели xyplot: точки с alpha= 0.3 и линиями с alpha=1. Вот пример:

library(lattice)
library(sp)
data(meuse)

xyplot(elev~ copper,data=meuse,groups=factor(soil),grid = TRUE,scales=list(tck=c(1,0), x=list(cex=1.1), y=list(cex=1.1)),
       auto.key = list(space = 'right',text=c("1", "2", "3")),
       par.settings = list(superpose.symbol = list(pch =20, cex = 1,
                                                   col = c("#006837", "#41ab5d","#fd8d3c"))),
      type = c("p", "smooth"),col.line =c("#006837", "#41ab5d","#fd8d3c"),lwd = 5,
      panel = function(x, ...) {
                panel.xyplot(x, ..., alpha = 0.3)
                panel.lines(x, ...,  alpha = 1)
            })

1 Ответ

0 голосов
/ 01 мая 2018

Шестнадцатеричное значение может быть прочитано как "#rrggbbaa", где r = красный, g = зеленый, b = синий и a = альфа. Поскольку десятичные значения непрозрачности находятся в диапазоне от 0 до 255, в традиционной записи rgb; значение для непрозрачности 30% будет round((256/100)*30) = 77, а шестнадцатеричное значение для этого будет 4d (список с некоторыми примерами здесь для справки и таблица преобразования dec - hex может быть найдена здесь ).

Поэтому вам просто нужно добавить 4d в конце вашего шестнадцатеричного кода для цвета точек как:

col = c("#0068374d", "#41ab5d4d","#fd8d3c4d")

и удалите

panel = function(x, ...) {
            panel.xyplot(x, ..., alpha = 0.3)
            panel.lines(x, ...,  alpha = 1)
        }

enter image description here

...