Long x labels in subplot() get cut off from plot
Personne n'a encore pris cette issue.
- Langage dominant
- R
- Étoiles
- 2.7k
- Forks
- 641
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
I've created a shiny app that uses plotly::subplot(), and one of the interactive aspects of this app is that the size of the label can vary depending on user selection.
I've noticed that if there is a label that is really long (in my app the "magic number" is 55 characters, in the following reprex it is higher), that label length is ignored for sizing the plots, even with automargin = TRUE.
library(shiny)
library(plotly)
library(dplyr)
library(purrr)
#Creating dataset with 3 different sample groups, each one with 2 levels
group1 <- c("G1", "G2")
group2 <- c("Longer labels make the plot area smaller", "That's nice!")
group3 <- c("Really long labels get cut off the plot, I don't know why, that's weird", "Another label")
groups <- c("Group1", "Group2", "Group3")
df <- as.data.frame(do.call(paste0, replicate(50, sample(LETTERS, 10, TRUE), FALSE)))
df <- df %>%
mutate(Group1 = sample(group1, nrow(.), replace = TRUE),
Group2 = sample(group2, nrow(.), replace = TRUE),
Group3 = sample(group3, nrow(.), replace = TRUE),
value = rnorm(nrow(.), 0,10))
#App
ui <- fluidPage(
titlePanel("Testing large labels"),
sidebarLayout(
sidebarPanel(
checkboxGroupInput("groups", "Select Groups", choices = groups, selected = groups[1])
),
mainPanel(plotlyOutput("plots", height = "700px"))
)
)
server <- function(input, output) {
list_of_plots <- reactive({
purrr::map(input$groups, .f = function(group){
plot_ly(
df,
x = df[[group]],
y = df$value,
type = 'violin',
hoverinfo = 'text',
showlegend = FALSE,
box = list(
visible = TRUE
),
meanline = list(
visible = TRUE
))%>%
layout(
autosize = TRUE,
xaxis = list(automargin = TRUE,
tickangle = 80)
)
})
})
output$plots <- renderPlotly(
plotly::subplot(list_of_plots(), shareX = TRUE, shareY = TRUE)
)
}
shinyApp(ui, server)
In the app, we have the following behavior, based on the selected groups:
- Group1 + Group2: plot size is adjusted to the longer label in Group2. (the expected behavior)
- Group1 + Group2 + Group3: long label in group 3 gets cut off
- Group1 + Group3: only the labels in Group1 are used to define the plot size.
In my app, I was able to change the long label to a shorter version, but I was wondering if there is any workaround around this problem.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par exécuter le reprex R/Shiny fourni et examinez plotly::subplot() ainsi que les paramètres xaxis automargin et tickangle. C’est terminé lorsque les libellés les plus longs de l’axe x restent visibles quand Group1, Group2 et Group3 sont sélectionnés, y compris le cas Group1 + Group3.
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é
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100