Jak zobrazit pouze některé hoverinfo bodů na spojnicovém grafu s Plotly v R

0

Otázka

Mám provoz a článek dfs takto:

library(plotly)
library(dplyr)

set.seed(101)
traffic <- data.frame(Date = seq(as.Date("2021-06-01"), as.Date("2021-07-10"), by="days"),
                      Views = round(rnorm(40, 5000, 200),0))

articleData <- data.frame(Date = as.Date(c("2021-06-01", "2021-07-04", "2021-07-10")),
                          article = c("Article 1", "Article 2", "Article 3"))

joinedData <- left_join(traffic, articleData)

Chci, aby se plotly řádku graf, který ukazuje linka pro provoz, ale pro 3 termíny tam, kde byly články publikované bych chtěl přidat tečku, že člověk může pokrýt, a to bude ukázat, co článek byl publikován, že den. Níže je to, co jsem byl schopen dát dohromady:

plot_ly(data = joinedData, x = ~Date, y = ~Views, type = "scatter", mode = "lines") %>%
  add_trace(hoverinfo = "text", text = ~article, mode = "markers")

To technicky funguje, ale klade značku na každý den, ne jen 3 dny, že měl články. Existuje způsob, jak ignorovat značení dní, že nemám články? Já opravdu jen chci upozornit na dny, které články publikované a ukázat, zda tento článek ukazuje spike v provozu, nebo ne.

plotly r
2021-11-23 22:06:26
1

Nejlepší odpověď

1

Myslím, že jsi opravdu blízko, ve své otázce. Myslím, že stačí, aby filtrovat data pro tyto tři články a vytvořit nový datovém. Můžete použít nový datový soubor v add_trace. To bude jen dát body na termíny, které byly články publikovány.

library(dplyr)
library(plotly)
filteredJoinedData <- joinedData %>%
  filter(article != "NA")

plot_ly(data = joinedData, x = ~Date, y = ~Views, type = "scatter", mode = "lines") %>%
  add_trace(data = filteredJoinedData, hoverinfo = "text", text = ~article, mode = "markers")

Dává vám to graf

example

2021-11-23 23:07:50

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................