首页 > 解决方案 > 有没有办法让图表突出显示以及在 R 中选择元素的交互性?

问题描述

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

我已经构建了静态突出显示的图表gghighlight但这些图表不是交互式的。 Plotly可以帮助进行交互,但我认为它们不适用于gghighlight.

那么我们如何才能在图表中将两者结合起来,highlight and interactivity就像在顶部共享的链接中一样呢?

是否有可能在 R 中获得相同的结果?如果有人可以分享一个可以提供帮助的示例或链接,那将非常有帮助。

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

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

下面是在美国上空盘旋的同一张图表的快照(这张图表也与世界经济论坛多次分享的图表相似。)

在此处输入图像描述

标签: rggplot2plotlyr-plotlygghighlight

解决方案


使用plotly你可以highlight()用来实现这一点。

这是一个稍微修改过的示例

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
)

结果


推荐阅读