plotly / plotly/plotly.R

Custom dimensions for a ggplot2 boxplot doesn't work with ggplotly

Aperta
#1,098 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

bug ggplotly
Lingua principale
R
Stelle
2.7k
Fork
641
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

When I create a ggplot2 boxplot with custom dimensions (see the bottom of http://ggplot2.tidyverse.org/reference/geom_boxplot.html#examples), plotly doesn't render the boxplot when I apply ggplotly. However, it works ok with a traditional boxplot where the dimensions are calculated by geom_boxplot/stat_boxplot.

Below is a reproducible example of the issue.

## Libraries
library(ggplot2)
library(plotly)

## Using fake data with extreme values
fake_data = data.frame(
  y1 = c(rnorm(100, 2, 3), rnorm(10, 10, 15))
)


# ggplot2
g1 = ggplot(data=fake_data, aes(x ="cat1", y= y1)) + 
  #stat_boxplot(geom="errorbar") +
  geom_boxplot() +
  labs(title="Traditional Boxplot") +
  ylim(c(-5, 25))

g1

quants = quantile(fake_data$y1, c(0.05, .25, .5, .75, .95))
q_df = data.frame(t(quants))
names(q_df) = c("y5", "y25", "y50", "y75", "y95")


g2 = ggplot(data=q_df, aes(x ="cat1")) + 
  #stat_boxplot(geom="errorbar") +
  geom_boxplot(stat="identity", aes(, 
       ymin = y5, lower = y25, 
       middle = y50, upper = y75,
       ymax = y95)) +
  geom_point(data=subset(fake_data, (y1 > q_df$y95) | (y1 < q_df$y5)), aes(y=y1)) +
  labs(title="5%/95% Boxplot") +
  ylim(c(-5, 25))

g2



# plotly
plotly::ggplotly(g1)
plotly::ggplotly(g2) # DOESN'T WORK!

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Iniziare con l’esempio R riproducibile nell’issue e confrontare ggplotly(g1) con ggplotly(g2), concentrandosi sul boxplot con stat="identity" e sulle mappature personalizzate di ymin, lower, middle, upper e ymax. Riprodurre il fallimento, quindi tracciare il percorso di conversione di ggplotly per questi valori del boxplot; il lavoro è completato quando il grafico con dimensioni personalizzate viene renderizzato preservando i punti anomali.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
r
Ambito
data-visualization
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.