为什么在基本 R 中绘制线图时会看到线上的点?

问题描述 投票:0回答:2

当我使用透明颜色设置在 R 中的线图中绘制序列时,我不断地在线上看到这些点。您知道这是为什么以及我该如何解决这个问题吗?

s <-seq(1,100, by = 0.1)
plot(s, type="l",col=alpha("black",0.3), lwd=3)

Line plot in base R

我尝试使用lines函数,结果出现了同样的问题。

谢谢您的回答。

r plot line-plot
2个回答
1
投票

您可以在

v=0
中设置值
rainbow
。无需 alpha 包或自定义函数。

> plot(s, type="l", col=rainbow(n=1, v=0, alpha=.3), lwd=3)


数据:

s <- seq(1, 100, by=0.1)

0
投票

我怀疑这可能是由于您使用的

alpha()
功能而发生的。它来自哪个包?您可以创建自己的函数来添加透明度:

append_alpha  <- function(color, alpha) {
    alpha_scaled  <- round(alpha*255)
    alpha_hex  <- as.hexmode(alpha_scaled)
    color_with_alpha  <- paste0(color, alpha_hex)

    return(color_with_alpha)
}

然后应用这个:

black  <- "#000000" # hex code for black
plot(s, type="l",col=append_alpha(black, 0.3), lwd=3)

或者,您可以使用

"n"
类型绘制绘图,而不进行绘图,然后添加
lines()
:

plot(s, type="n",col=scales::alpha("black", 0.3), lwd=3)
lines(s,col=scales::alpha("black", 0.3), lwd=3)
# ^^ Produces same plot
© www.soinside.com 2019 - 2024. All rights reserved.