【问题标题】:Highlight all values from a group on hover悬停时突出显示组中的所有值
【发布时间】:2019-03-03 02:23:11
【问题描述】:

假设数据

library(ggplot2)
library(plotly)

set.seed(357)
xy <- data.frame(letters = rep(c("a", "b", "c"), times = 3),
                 values = runif(9),
                 groups = rep(c("group1", "group2", "group3"), each = 3))

  letters    values groups
1       a 0.9913409 group1
2       b 0.6245529 group1
3       c 0.5245744 group1
4       a 0.4601817 group2
5       b 0.2254525 group2
6       c 0.5898001 group2
7       a 0.1716801 group3
8       b 0.3195294 group3
9       c 0.8953055 group3

ggplotly(
  ggplot(xy, aes(x = letters, y = values, group = groups)) +
  theme_bw() +
  geom_point()
)

我的目标是在悬停时突出显示属于同一组的所有点。例如。将鼠标悬停在右上角的点上时,该组(圆圈)中的所有点都会变成红色。使用layout(hovermode = "x") 可以实现类似的效果,但前提是您有兴趣突出显示其中一个轴上的所有点。除了xyclosesthovermode 的模式)之外,我希望自定义变量具有相同的行为。

【问题讨论】:

    标签: r ggplot2 plotly ggplotly


    【解决方案1】:

    这可能会满足您的需求

    样本数据

    set.seed(357)
    xy <- data.frame(letters = rep(c("a", "b", "c"), times = 3),
                     values = runif(9),
                     groups = rep(c("group1", "group2", "group3"), each = 3))
    

    绘图

    #create a SharedData object for use in the ggplot below, group by 'groups' 
    d <- highlight_key(xy, ~groups )
    
    #create a normal ggplot to fit your needs, but use the SharedData object as data for the chart
    p <- ggplot( d, aes(x = letters, y = values, group = groups)) + theme_bw() + geom_point()
    
    #now ggplotly the newly created ggplot, and add text for the tooltips as needed
    gg <- ggplotly( p, tooltip = "groups" )
    
    #set the highlight-options to your liking, and plot...
    highlight( gg, on = "plotly_hover", off = "plotly_deselect", color = "red" )
    

    绘制结果

    【讨论】:

    猜你喜欢
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 2021-12-28
    • 2014-03-17
    相关资源
    最近更新 更多