Как фасетировать диаграмму plot_ly()?

Использование ggplot2 и plotly для создания интерактивного точечного графика с facet_wrap().

library(ggplot2)
library(plotly)

g<-iris%>%
  ggplot(aes(x = Sepal.Length, y = Sepal.Width, color = Species))+
  geom_point()+
  facet_wrap(vars(Species))
ggplotly(g)

диаграмма рассеяния ggplot2 с facet_wrap, визуализированная в plotly

Можно ли «фасетировать» с помощью функции plot_ly()? Документация предлагает subplot()...

p<-iris%>%
  group_by(Species)%>%
  plot_ly(x = ~Sepal.Length, y = ~Sepal.Width, color = ~Species, type = "scatter")%>%
  subplot() ##Something else here? 
p

как фасетировать эту диаграмму рассеяния plot_ly?


person M.Viking    schedule 25.09.2019    source источник


Ответы (1)


1: Сформируйте диаграмму plot_ly, используя метод do() и subplot():

library(plotly)
iris%>%
  group_by(Species) %>%
  do(p=plot_ly(., x = ~Sepal.Length, y = ~Sepal.Width, color = ~Species, type = "scatter")) %>%
  subplot(nrows = 1, shareX = TRUE, shareY = TRUE)

График Plot_ly, созданный с помощью функции group_by() и do()

2: Решетка диаграммы plot_ly с использованием новой функции dplyr::group_map().

library(dplyr)
iris%>%
  group_by(Species) %>%
  group_map(~ plot_ly(data=., x = ~Sepal.Length, y = ~Sepal.Width, color = ~Species, type = "scatter", mode="markers"), keep=TRUE) %>%
  subplot(nrows = 1, shareX = TRUE, shareY=TRUE)
person M.Viking    schedule 26.09.2019