R plotly link 子图,以便在悬停时显示多个工具提示
R plotly link subplots so that multiple tooltips shown on hover
我有分组数据。对于每个组,我都在 plotly 中绘制了一个子图。所有这些子图的 x 值对应于相同的描述,只是 y 轴值缺失或跨组不同。我想 link 这些子图,这样如果我将鼠标悬停在一个子图中的一个点上,它也会突出显示其他子图中具有相同 x 值的点。我已经尝试过 crosstalk 包示例,但要么我创建的子图错误,要么我不明白如何使用它。
有人有经验吗?
更新:
df <- data.frame(
ID = rep(1:4, times = 2),
Value = rnorm(8),
group = c(1,1,1,1,2,2,2,2)
)
subplot(
plot_ly(df[df$group==1,], x = ~ID, y = ~Value),
plot_ly(df[df$group==2,], x = ~ID, y = ~Value), nrows = 2
)
我的问题是,如果我将鼠标悬停在其中一个点上,如何突出显示所有子图中具有相同 x 值的点?
使用库 crosstalk,您首先需要将数据框转换为 SharedData
对象以用于多个连接的绘图。
使用函数facet_grid()
,您可以根据变量的水平创建单独的图形。
library(plotly)
library(crosstalk)
library(tidyverse)
df <- data.frame(
ID = rep(1:4, times = 2),
Value = rnorm(8),
group = c(1, 1, 1, 1, 2, 2, 2, 2)
)
shared_df <- SharedData$new(df)
ggplotly(
shared_df %>%
ggplot(aes(x = ID, y = Value)) +
geom_point() +
facet_grid(~ group)
)
在结果中,如果您单击左图上的一个点,它也会在右图上突出显示同一点。
我有分组数据。对于每个组,我都在 plotly 中绘制了一个子图。所有这些子图的 x 值对应于相同的描述,只是 y 轴值缺失或跨组不同。我想 link 这些子图,这样如果我将鼠标悬停在一个子图中的一个点上,它也会突出显示其他子图中具有相同 x 值的点。我已经尝试过 crosstalk 包示例,但要么我创建的子图错误,要么我不明白如何使用它。 有人有经验吗?
更新:
df <- data.frame(
ID = rep(1:4, times = 2),
Value = rnorm(8),
group = c(1,1,1,1,2,2,2,2)
)
subplot(
plot_ly(df[df$group==1,], x = ~ID, y = ~Value),
plot_ly(df[df$group==2,], x = ~ID, y = ~Value), nrows = 2
)
我的问题是,如果我将鼠标悬停在其中一个点上,如何突出显示所有子图中具有相同 x 值的点?
使用库 crosstalk,您首先需要将数据框转换为 SharedData
对象以用于多个连接的绘图。
使用函数facet_grid()
,您可以根据变量的水平创建单独的图形。
library(plotly)
library(crosstalk)
library(tidyverse)
df <- data.frame(
ID = rep(1:4, times = 2),
Value = rnorm(8),
group = c(1, 1, 1, 1, 2, 2, 2, 2)
)
shared_df <- SharedData$new(df)
ggplotly(
shared_df %>%
ggplot(aes(x = ID, y = Value)) +
geom_point() +
facet_grid(~ group)
)
在结果中,如果您单击左图上的一个点,它也会在右图上突出显示同一点。