【问题标题】:How to show only some hoverinfo points on a line graph with Plotly in R如何在 R 中使用 Plotly 在折线图上仅显示一些悬停信息点
【发布时间】:2022-01-02 09:23:36
【问题描述】:

我的流量和文章dfs如下:

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)

我想制作一个显示流量线的曲线图,但是对于发表文章的 3 个日期,我想添加一个人可以覆盖的点,它将显示发表的文章日。以下是我能够汇总的内容:

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

这在技术上是可行的,但它会在每一天进行标记,而不仅仅是有文章的 3 天。有没有办法忽略标记没有文章的日子?我真的只是想提请人们注意发表文章的日子,并说明该文章是否显示流量激增。

【问题讨论】:

    标签: r plotly


    【解决方案1】:

    我认为您的问题非常接近。我认为您只需要过滤这三篇文章的数据并创建一个新的数据框。您可以在 add_trace 中使用新数据集。这只会在发表文章的日期上加分。

    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")
    

    给你这张图

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-07
      • 2017-11-16
      • 2020-08-30
      • 2020-10-13
      • 1970-01-01
      相关资源
      最近更新 更多