plotly / plotly/plotly.R

ggplotly: problems with facet_grid/axes

Ouverte
#1,086 2 commentaires 3 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

ggplotly
Langage dominant
R
Étoiles
2.7k
Forks
641
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

I'm trying to display some block-matrix-like plot, and there are a few regressions when converting from ggplot to ggplotly conversion (ranked by severity):

  • degenerated (1 value) discrete axes are implicitly converted into continuous numeric axis centered around 1, original labels not displayed
  • switch="both" and strip.placement = "outside" options ignored (here it's important because with ggplot I am able to have sort-of 2-level hierarchy for X and Y axes, which ggplotly breaks)
  • some subplots with missing data are displayed (at 3x3 position), some don't (2x2 position)
  • the margins for the X labels are too small (is the text rotation considered when calculating the necessary space?)
  • space="free" option ignored
  • within my shiny application the diagonal subplots miss the fill color. It's an important issue, but I cannot make a small reproducible example (screenshot attached).

ggplot2
capza1_ggplot_render

ggplotly
capza1_plotly_render

ggplotly from Shiny app
capza1_plotly_shiny_render

The code

require(readr)
require(plotly)
require(ggplot2)

peakXpepmod.df <-  read_tsv("CAPZA1_example.txt",
                            col_types = list("pepmod_id"="c", "peak_id"="c", "proteoform_id"="c", "pmgroup_id"="c")) %>%
  dplyr::mutate(pepmod_id = factor(pepmod_id),
                peak_id = factor(peak_id),
                proteoform_id = factor(proteoform_id),
                pmgroup_id = factor(pmgroup_id))

p <- ggplot(peakXpepmod.df) +
  geom_point(aes(x = pepmod_id, y = peak_id,
                 color = proteoform_id), shape=15, size=8) +
  geom_point(aes(x = pepmod_id, y = peak_id,
                 shape = pmgroup_id), size=5) +
  scale_x_discrete("Pepmods") + scale_y_discrete("Peaks") +
  theme( axis.line = element_line(colour = "gray80"),
         axis.ticks = element_line(colour = "gray80"),
         axis.text.x = element_text(angle = 90, hjust = 1),
        strip.background = element_rect(colour="gray"),
        strip.placement = "outside") +
  facet_grid(proteoform_id ~ pmgroup_id, switch="both", scales = "free", space = "free")

# ggplot
p

# ggplotly
ggplotly(p)

The dataset
CAPZA1_example.txt

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Reproduire le rapport en exécutant l’exemple R fourni avec CAPZA1_example.txt, en comparant p à ggplotly(p) et en se concentrant sur la conversion de facet_grid. Aucun fichier de projet ni test n’est nommé ; le travail est considéré comme terminé lorsqu’il traite les régressions listées concernant les axes, les bandes, les sous-graphiques manquants, les marges, l’espacement et les couleurs de remplissage, avec une attention particulière aux cas qui peuvent être reproduits.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
r
Domaine
data-visualization
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
32/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.