Je sollicite votre aide car je suis confronté à un problème lié à la conversion d'un ggplot en plotly. C'est un peu délicat à expliquer... Je vais tâcher d'être concis.
Je dispose de relevés de 6 variables, mené en des lieux différents à 2 dates différentes. Je souhaite comparer l'évolution entre les 2 dates (axe des x) de chaque variable (1 par "facet") entre les différents lieux ("fill"). Pour faire des boxplots, j'indique à ggplot que le facteur de regroupement sera une combinaison de date et de lieu. Cela marche très bien. En revanche, lorsque je passe en plotly, la largeur des boxplots est correcte sur la première facet, mais aberrante sur les autres. De plus, l'ajout / retrait de lieu de manière interactive sur la page générée fait varier de manière anarchique la largeur des boxplots de la première facet également...
Voici un code reproductible :
Code : Tout sélectionner
require(ggplot2)
require(plotly)
tab <- data.frame(fac1 = rep(letters[1:3], 100), fac2 = rep(letters[24:26], 100), fac3 = rep(c("A", "B"), 150), x = as.Date(c("2014-01-01", "2014-02-01", "2014-03-15")), y = rnorm(300, 10))
g <- ggplot(tab, aes(x = x, y = y, fill = fac1, group = fac2)) + facet_wrap(~ fac3)
g <- g + geom_boxplot()
g # Là c'est bon
ggplotly(g) # Là, c'est l'anarchie!
C'est moins le bazar que sur mon vrai jeu de données, mais l'idée est là...
J'ai essayé de voir ce qui contrôlait la taille des boxplots en passant par "plotly_build" puis en scrutant minutieusement tous les sous-éléments de la traduction en plotly, cherché encore et encore dans tous les forums, mais en vain. Je commence à croire que je suis le seul à avoir été confronté à ça... J'ai bien trouvé l'argument "box gap", mais cela semble propre à Python.
Quelqu'un a déjà rencontré ce cas de figure?
Au pire, j'en resterais à des moyennes et barres d'erreurs...
D'avance merci!
Pour info, ma version de R est 3.2.4, et :
Code : Tout sélectionner
> packageVersion("ggplot2")
[1] ‘2.1.0’
> packageVersion("plotly")
[1] ‘3.4.1’
Note : ce travail s'inscrit dans le cadre du développement d'une application. L'interactivité offerte par plotly est donc fortement souhaitée.