[英]Make tooltip appear on corresponding points in different ggplot2 facets in a plotly object
我正在使用ggplot2
和plotly
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.