按条件在 Plotly r 中选择标记的颜色或符号

Pick color or symbol of marker in Plotly r on a group by condition

+----+------+-------+
| Id | Time | Value |
+----+------+-------+
|  1 | A    |     1 |
|  2 | B    |    10 |
|  2 | C    |     3 |
|  2 | D    |     6 |
|  3 | E    |     2 |
|  4 | F    |     9 |
|  4 | G    |     4 |
|  4 | H    |    17 |
+----+------+-------+

我有上面的数据(简化)。我使用散点图绘制了这个,使用 plot-ly 将 Id 作为 X 轴,将值作为 Y 轴。现在基于时间列,我希望 Id 字段的最新条目具有特定的 shape/symbol。我如何使用 plot-ly 和 r 来做到这一点?

我会添加一列来标记最后一个条目,然后将该列用作美学。

例如,在ggplot中:

df %>%
    group_by(Id) %>%
    mutate(
        rowNo = 1:n(),
        isLast = factor(ifelse(rowNo == n(), 1, 0))) %>%
    ggplot(aes(x = Id, y = Value, shape = isLast)) + geom_point()

plot_ly.

也类似
df %>%
    group_by(Id) %>%
    mutate(
        rowNo = 1:n(),
        isLast = factor(ifelse(rowNo == n(), 1, 0))) %>%
    plot_ly(x = ~Id, y = ~Value, symbol = ~isLast)

示例数据

df <- read.table(text =
    "Id  Time Value
1 A  1
2 B 10
2 C  3
2 D  6
3 E  2
4 F  9
4 G  4
4 H 17", header = T)