Имею два Сюжетных участка. Я создаю дополнительный сюжет, чтобы собрать их вместе. Я хотел бы связать их так, чтобы выделение точки на любой панели также выделяло соответствующие точки на другой панели. Это легко сделать, если графики построены на основе одного и того же кадра данных. Но что, если графики построены из разных фреймов данных - фреймов данных, которые имеют общую переменную идентификатора? Можно ли тогда это сделать?
Вот минимальный пример. (Я использую Plotly через R, но мой вопрос является общим для любой версии Plotly.) Пример основан на наборе данных "iris" и использует Species
в качестве общей переменной:
library(dplyr) # for %>%, group_by(), mutate(), slice()
library(plotly)
data(iris)
iris1 <- iris %>%
group_by(Species) %>%
mutate(PL = mean(Petal.Length), PW = mean(Petal.Width)) %>%
highlight_key(~Species)
iris2 <- iris1$data() %>%
slice(1) %>% # keep only first row for each species
highlight_key(~Species)
fig1 <- plot_ly(
x = ~Petal.Length,
y = ~Petal.Width,
type = "scatter",
mode = "markers",
color = ~Species,
data = iris1)
fig2 <- plot_ly(
x = ~PL,
y = ~PW,
type = "scatter",
mode = "markers",
color = ~Species,
data = iris2)
subplot(fig1, fig2)
Этот код создает двухпанельную фигуру. Левая панель содержит много точек, и разные цвета точек представляют разные виды ирисов. Правая панель содержит только три точки: по одной для каждого вида ирисов.
Выделение на этом рисунке не то, что мне нужно. Щелчок по точке на любой панели выделяет точку на правой панели, и это хорошо. Но щелчок по точке на правой панели не выделяет соответствующие точки на левой панели.
Если бы fig1
и fig2
были построены из одного и того же набора данных, не было бы проблема. Но, учитывая, что они построены на основе разных наборов данных, я не вижу способа реализовать выделение на фигурах, хотя я хочу, чтобы выделение было основано на переменной Species
, которая существует в обоих наборах данных. Есть ли способ?
Я просмотрел SO и проблемы в репозиториях Plotly Github, но я не видел ничего, что говорило бы об этом.