下面是以绘图方式绘制的数据帧。但我想突出显示0的值。例如,列A具有0个值。我需要在图表中突出显示它们。有可能吗?
df <- structure(
list(
day = structure(c(18262, 18266, 18273, 18280,
18287, 18294), class = "Date"),
A = c(9L, 8L, 4L, 0L,
0L, 7L),
`B` = c(3L, 6L, 10L, 6L, 8L, 3L)
),
row.names = c(NA, 6L),
class = "data.frame"
)
day A B
1 2020-01-01 9 3
2 2020-01-05 8 6
3 2020-01-12 4 10
4 2020-01-19 0 6
5 2020-01-26 0 8
6 2020-02-02 7 3
> plot_ly(df) %>% layout(yaxis = list(title = FALSE)) %>% add_trace(x = ~day, y = ~A, type = 'scatter', mode = "lines", yaxis = "y1", line = list (color = 'red'), name = 'A')
%>% add_trace(x = ~day, y = ~B, type = 'scatter', mode = "lines", yaxis = "y1", line = list (color = 'black'), name = 'B')
阅读文档:
?plotly::add_trace
add_trace()
有一个data
参数。您可以将数据的不同切片提供给不同的层。因此,制作一个只包含具有要高亮显示的值的数据的层,以及一个包含所有其他值的层。或者一个包含所有数据的轨迹和一个只包含要高亮显示的数据的层。
类似这样的东西:
plot_ly(df) %>%
layout(yaxis = list(title = FALSE)) %>%
add_trace(x = ~day, y = ~A, type = 'scatter', mode = "lines", yaxis = "y1", line = list (color = 'red'), name = 'A') %>%
add_trace(x = ~day, y = ~B, type = 'scatter', mode = "lines", yaxis = "y1", line = list (color = 'black'), name = 'B') %>%
add_markers(data=df[df$A==0, ], x = ~day, y = ~A, type = 'scatter', yaxis = "y1", name = 'zeros')