是否有一种方法可以使图表突出显示,并且可以交互选择R中的元素?

时间:2020-10-16 08:05:42

标签: r ggplot2 plotly r-plotly gghighlight

我在以下网页上看到了一个漂亮的图表:https://ourworldindata.org/coronavirus,并且想知道我们是否可以在具有突出显示的系列功能中在R中构建相同的图表 strong>以及选择悬停时的任何行吗?

我已经使用gghighlight构建了静态突出显示的图表,但它们不交互式Plotly可以帮助实现互动,但我认为它们与gghighlight不兼容。

那么如何像在顶部共享的链接中那样将图表中的highlight and interactivity组合起来?

是否有可能在R中获得相同的结果?如果有人可以分享可以帮助您的示例或链接,那将真的很有帮助。

更新:也许我可以通过创建一个因子列而不是使用gghighlight来手动突出显示行,然后将其传递给ggplotly,但是可以{{1} }或其他一些库在悬停时提供类似的结果?)

(注意:不查找动画。只需突出显示,将鼠标悬停在交互式图表上即可)

下面是悬停在美国上的同一图表的快照(此图表也与世界经济论坛多次分享的图表相似。)

enter image description here

1 个答案:

答案 0 :(得分:0)

使用plotly可以使用highlight()实现这一目标。

这是对here的稍作修改的示例:

library(plotly)

# load the `txhousing` dataset
data(txhousing, package = "ggplot2")

# declare `city` as the SQL 'query by' column
tx <- highlight_key(txhousing, ~city)

# initiate a plotly object
base <- plot_ly(tx, color = I("black")) %>% 
  group_by(city)

# create a time series of median house price
time_series <- base %>%
  group_by(city) %>%
  add_lines(x = ~date, y = ~median)

highlight(
  time_series, 
  on = "plotly_hover",
  selectize = FALSE, 
  dynamic = FALSE,
  color = "red",
  persistent = FALSE
)

result