将 alpha 值添加到点阵 xyplot 面板函数

Geo*_*-sp 3 r lattice

我要分配在两个α值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)
            })
Run Code Online (Sandbox Code Playgroud)

DJa*_*ack 6

十六进制值可以读作"#rrggbbaa"其中 r = 红色、g = 绿色、b = 蓝色和 a = alpha。由于不透明度的十进制值范围从 0 到 255,在传统的 rgb 表示法中;30%的不透明度的值将是round((256/100)*30) = 77,由于这个十六进制值4d(存在与一些示例的列表这里以供参考和一个转换表癸-十六进制可以找到这里)。

因此,您只需要4d在十六进制代码的末尾添加点颜色,如下所示:

col = c("#0068374d", "#41ab5d4d","#fd8d3c4d")
Run Code Online (Sandbox Code Playgroud)

并删除

panel = function(x, ...) {
            panel.xyplot(x, ..., alpha = 0.3)
            panel.lines(x, ...,  alpha = 1)
        }
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明