[R] overlay shaded area in base r plot
Jan van der Laan
rhe|p @end|ng |rom eoo@@dd@@n|
Tue Sep 19 11:16:56 CEST 2023
Shorter/simpler alternative for adding a alpha channel
adjustcolor("lightblue", alpha = 0.5)
So I would use something like:
# Open new plot; make sure limits are ok; but don't plot
plot(0, 0, xlim=c(1,20),
ylim = range(c(mean1+sd1, mean2+sd2, mean1-sd1, mean2-sd2)),
type="n", las=1,
xlab="Data",
ylab=expression(bold("Val")),
cex.axis=1.2,font=2,
cex.lab=1.2)
polygon(c(1:20,20:1),
c(mean1[1:20]+sd1[1:20],mean1[20:1]-sd1[20:1]),
col=adjustcolor("blue", 0.5),
border = NA)
polygon(c(1:20,20:1),
c(mean2[1:20]+sd2[1:20],mean2[20:1]-sd2[20:1]),
col=adjustcolor("yellow", 0.5),
border = NA)
lines(1:20, mean1,lty=1,lwd=2,col="blue")
lines(1:20, mean2,lty=1,lwd=2,col="yellow")
On 19-09-2023 09:16, Ivan Krylov wrote:
> В Tue, 19 Sep 2023 13:21:08 +0900
> ani jaya <gaaauul using gmail.com> пишет:
>
>> polygon(c(1:20,20:1),c(mean1[1:20]+sd1[1:20],mean1[20:1]),col="lightblue")
>> polygon(c(1:20,20:1),c(mean1[1:20]-sd1[1:20],mean1[20:1]),col="lightblue")
>> polygon(c(1:20,20:1),c(mean2[1:20]+sd2[1:20],mean2[20:1]),col="lightyellow")
>> polygon(c(1:20,20:1),c(mean2[1:20]-sd2[1:20],mean2[20:1]),col="lightyellow")
>
> If you want the areas to overlap, try using a transparent colour. For
> example, "lightblue" is rgb(t(col2rgb("lightblue")), max = 255) →
> "#ADD8E6", so try setting the alpha (opacity) channel to something less
> than FF, e.g., "#ADD8E688".
>
> You can also use rgb(t(col2rgb("lightblue")), alpha = 128, max = 255)
> to generate hexadecimal colour strings for a given colour name and
> opacity value.
>
More information about the R-help
mailing list