r-突出显示绘图中的值



下面是以绘图方式绘制的数据帧。但我想突出显示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')

最新更新