String 在绘图函数中将透明度应用于颜色向量

String 在绘图函数中将透明度应用于颜色向量,string,r,concatenation,vectorization,String,R,Concatenation,Vectorization,我试图在plot函数中使用alpha转换为col参数。如何在不必为每种颜色编写col=alpha(每种颜色,.5)的情况下实现这一点 有没有办法将其矢量化 以下是可复制的示例: set.seed(10) mydata <- rnorm(100) mycol <-c("#FDF6E3", "#B3E2CD", "#FDCDAC", "#CBD5E8", "#F4CAE4", "#E6F5C9", "#FFF2AE", "#F1E2CC", "#CCCCCC") par(bg='gray

我试图在
plot
函数中使用
alpha
转换为
col
参数。如何在不必为
每种颜色编写
col=alpha(每种颜色,.5)
的情况下实现这一点

有没有办法将其矢量化

以下是可复制的示例:

set.seed(10)
mydata <- rnorm(100)
mycol <-c("#FDF6E3", "#B3E2CD", "#FDCDAC", "#CBD5E8", "#F4CAE4", "#E6F5C9", "#FFF2AE", "#F1E2CC", "#CCCCCC")
par(bg='gray30')
plot(mydata,col=mycol,pch=19,cex=3)
mycol_alpha <- paste0('alpha(\'',mycol,'\',.5)')
par(bg='white')

正如@Robert所指出的,矢量化不是你的问题


transparency我不这么认为,但是你把
alpha
拼错成了
aphla
。。。你还看到透明度吗?另外,您使用的
paste0
已经矢量化了。我不完全确定问题是什么。我假设
alpha
是一个自定义函数。它不是矢量化的吗?为什么不呢?可以通过编写
Vectorize(alpha)
对其进行矢量化吗?对于基本解决方案,请尝试
grDevices::adjustcolor
基本解决方案是最通用的,但是
scales::alpha
已经矢量化了(如果您正在使用的是
alpha()
函数)。使用该函数,您不需要粘贴,只需
mycol\u alpha即可
set.seed(10)
mydata <- rnorm(100)
mycol <-c("#FDF6E3", "#B3E2CD", "#FDCDAC", "#CBD5E8", "#F4CAE4", "#E6F5C9", "#FFF2AE", "#F1E2CC", "#CCCCCC")
par(bg='gray30')
plot(mydata,col=scales::alpha(mycol,.5),pch=19,cex=3)