首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让`ggiraph`悬停功能在点击时保持不变?

如何让`ggiraph`悬停功能在点击时保持不变?
EN

Stack Overflow用户
提问于 2021-05-11 05:49:13
回答 1查看 80关注 0票数 0

我有一个可视化的(见下文),它有很好的悬停功能,使可读性变得更容易。我希望用户能够通过单击他们正在悬停的东西来使悬停功能持续存在。这可以使用ggiraph吗?

可重现的最小示例代码:

代码语言:javascript
复制
library(tidyverse)
library(ggiraph)

nodes = tibble(value=c(1,2,1,2), week=c(1,1,2,2))     
vertices = tibble(From=c(1,1,2,2), To=c(1,2,1,2), weight=c(.5,.5,.5,.5), start_week=1, rand=c(.48, .33, .34,.40))
p=ggplot(nodes) +
  geom_point_interactive(size = 12, aes(x=week, y=value, color =paste(week, value), data_id=paste(week, value)))+
  geom_text_interactive(color="white",aes(x=week, y=value, label=value, data_id=paste(week, value)))+
  geom_segment_interactive(data=vertices, aes(x=start_week+.1, xend=start_week+1-.1, y=From, yend=To,
                                                                     data_id=paste(start_week, From)))+
  geom_text_interactive(data=vertices, aes(x=start_week+rand, y=From-(From-To)*rand, label=paste0(round(weight*100), "%"),
                                                                  data_id=paste(start_week, From)), vjust=-.1, hjust=-.1) +
  guides(color=F, size=F)+
  scale_y_continuous(name="Cluster", breaks=NULL, labels=NULL)+
  scale_x_continuous(name="Stage", breaks=1:6)+
  theme_minimal()

girafe(ggobj=p,
       options = list(
         opts_hover_inv(css = "opacity:0.1;"),
         opts_hover(css = "stroke-width:2;")
       ))

EN

回答 1

Stack Overflow用户

发布于 2021-05-12 16:45:53

您可能需要调整一些选项以使其更美观。这里重要的一点是定义opts_selection(only_shiny = FALSE),这样在没有闪光的情况下也可以进行选择:

代码语言:javascript
复制
library(tidyverse)
library(ggiraph)

nodes = tibble(value=c(1,2,1,2), week=c(1,1,2,2))     
vertices = tibble(From=c(1,1,2,2), To=c(1,2,1,2), weight=c(.5,.5,.5,.5), start_week=1, rand=c(.48, .33, .34,.40))
p=ggplot(nodes) +
  geom_point_interactive(size = 12, aes(x=week, y=value, color =paste(week, value), data_id=paste(week, value)))+
  geom_text_interactive(color="white",aes(x=week, y=value, label=value, data_id=paste(week, value)))+
  geom_segment_interactive(data=vertices, aes(x=start_week+.1, xend=start_week+1-.1, y=From, yend=To,
                                              data_id=paste(start_week, From)))+
  geom_text_interactive(data=vertices, aes(x=start_week+rand, y=From-(From-To)*rand, label=paste0(round(weight*100), "%"),
                                           data_id=paste(start_week, From)), vjust=-.1, hjust=-.1) +
  guides(color=F, size=F)+
  scale_y_continuous(name="Cluster", breaks=NULL, labels=NULL)+
  scale_x_continuous(name="Stage", breaks=1:6)+
  theme_minimal()

girafe(ggobj=p,
       options = list(
         opts_hover_inv(css = "opacity:0.1;"),
         opts_hover(css = "stroke-width:2;"),
         opts_selection(only_shiny = FALSE, type = "single", css = "stroke:yellow;")
       ))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67478061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档