首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使工具提示出现在对象中不同ggplot2方面的对应点上

使工具提示出现在对象中不同ggplot2方面的对应点上
EN

Stack Overflow用户
提问于 2019-05-24 23:02:50
回答 1查看 410关注 0票数 4

我使用ggplot2plotly R软件包生成火山图,以可视化蛋白质差异丰度数据。

代码语言:javascript
复制
library(ggplot2)
library(plotly)

nVals <- 80
nFacets <- 2

#example dataset
proteins <- rep(paste0('protein_', c(1:(nVals / nFacets))), nFacets)
set.seed(1)
dat <- data.frame(log_FC = c(rnorm(nVals*0.8, 0, 1), rnorm(nVals*0.2, 0, 12)),
                  log_Pval = abs(rnorm(nVals, mean=0, sd=0.01)),
                  facet = rep(paste0('Cell line ', 1:nFacets), nVals / nFacets),
                  protein = proteins[order(proteins)])


#make ggplot2 object
p <- ggplot(dat, aes(y = log_Pval, x = log_FC, text = protein)) +
  facet_wrap(~ facet) +
  geom_point()

#convert p to plotly object with plotly::ggplotly
ggplotly(p)

电流输出示例

我正在使用plotly中的工具提示功能来显示与每个点相关的数据。我想扩展工具提示功能,以突出相同的蛋白质在不同方面的情节。

换句话说,当光标在一个方面的点上盘旋时,工具箱将显示在所有值相同的点上,这些点在相邻的中的 dat$protein 列中。

这里就是我的目标的一个例子。

是否有某种方式来定制工具提示的行为以达到我所描述的目的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-25 00:03:20

使用crosstalk,您可以让小部件彼此通信。从数据框架中创建一个SharedData对象,并选择protein作为键。

代码语言:javascript
复制
library(crosstalk)
shared_df <- SharedData$new(dat, key = ~protein)

然后,使用shared_df代替datggplot。如果在一个图中选择一个点,它将突出显示第二个图中的匹配数据点(由protein)。如果这能满足你的需要,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56300334

复制
相关文章

相似问题

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