我想调整绘图中线条的透明度/alpha。
我无法使用
add_series
,因为此图表在 Shiny 应用程序中使用,并且数据不断变化,因此必须需要在以下数据中的 random_z
变量上完成拆分:
library(plotly)
set.seed(1)
x <- c(1:100)
random_y <- rnorm(100, mean = 0)
data <- data.frame(x, random_y, random_z = rep(c('A', 'B'), times = 50))
plot_ly(
data,
x = ~x,
y = ~random_y,
mode = 'lines',
color = ~random_z,
colors = c("A" = 'red',
"B" = adjust_transparency('blue', 0.1)
)
)
无需任何透明度调整即可显示颜色。 将
adjust_transparency('blue', 0.1)
更改为 toRGB('blue', 0.1)
会导致错误:“错误:未知颜色名称:rgba(0,0,255,0.1)”。
如有任何帮助,我们将不胜感激。
for
循环可以与add_series
以及包含颜色的命名向量结合使用,以实现所需的结果。library(plotly)
set.seed(1)
x <- c(1:100)
random_y <- rnorm(100, mean = 0)
data <- data.frame(x, random_y, random_z = rep(c('A', 'B'), times = 50))
pal <- c(toRGB("red"), toRGB("blue", alpha = 0.1))
pal <- setNames(pal, c("A", "B"))
p <- plot_ly()
for(cols in unique(data$random_z)){
p <- p %>%
add_trace(
data = data %>% filter(random_z == cols),
x = ~x,
y = ~random_y,
mode = 'lines',
name = cols,
line = list(color = pal[[cols]])
)
}
p