如何有条件地改变 Plotly 中标记的颜色?

How to conditionally change color of markers in Plotly?

我在 R 中有一个 dataframe,它在 value 列中有一些连续值和一个 signal 列,它是 0 或 1。

db <- cbind(seq(1,5),rnorm(5,0,1), c(0,0,1,0,1))
colnames(db) <- c("ID","value","signal")
db <- as.data.frame(db)

使用 plotly,我想绘制列 value 的线+标记,并在列 signal 的值为 1 时使用与线不同颜色的标记.

有人知道怎么做吗?我能得到的最多是一个简单的线+标记图。

plot_ly(db) %>%
  add_trace(x=~ID, y=~value, type='scatter',
            mode='lines+markers', color=I('black'))

提前谢谢你。

可以将线图和点图分开,分别决定颜色。你可以试试这个,

plot_ly(db, x=~ID, y=~value, type='scatter',
        mode='markers', color = db$signal, 
        colors = c("1" = "white", "0" = "black")) %>%
  add_trace(x=~ID, y=~value, type='scatter',
            mode='lines', color=I('black'))