簡體   English   中英

使工具提示出現在繪圖對象中不同 ggplot2 方面的相應點上

[英]Make tooltip appear on corresponding points in different ggplot2 facets in a plotly object

我正在使用ggplot2plotly R 包來生成火山圖來可視化蛋白質差異豐度數據。

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使用工具提示功能來顯示與每個點關聯的數據。 我想擴展工具提示功能以在繪圖的不同方面突出顯示相同的蛋白質。

換句話說,當光標懸停在 1 個方面中的一個點上時,工具提示框將顯示在相鄰方面dat$protein列中具有相同值的所有點上

是我的目標的一個例子。

是否有某種方法可以自定義工具提示的行為以實現我所描述的內容?

使用crosstalk ,您可以讓小部件相互通信。 從您的數據框中創建一個SharedData對象,並選擇protein作為鍵。

library(crosstalk)
shared_df <- SharedData$new(dat, key = ~protein)

然后,在ggplot使用shared_df而不是dat 如果您在一個圖中選擇一個點,它將突出顯示第二個圖中的匹配數據點(按protein )。 請讓我知道這是否滿足您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM