我有分组数据。对于每个组,我都以绘图方式绘制子图。所有这些子图的x值都对应相同的描述,只是y轴值在组中丢失或不同。我想链接这些子图,以便如果将鼠标悬停在一个子图中的一个点上,它还将在其他子图中突出显示具有相同x值的点。我已经试过了相声包示例,但是要么我创建了错误的子图,要么不知道如何使用它。 有人有经验吗?
更新:
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值突出显示这些点?
答案 0 :(得分:0)
使用库 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)
)
结果是,如果单击左图上的一个点,它也会在右图上突出显示该点。