plotly / plotly/plotly.R

Is there a way to fix bar height of horizontal bar charts in R Plotly?

Aperta
#1,993 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

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

Descrizione

Not too sure if this question is asked before. I have been trying to look for solutions but to no avail.

I am trying to create a shiny dashboard with plotly. The thing is that I have earmarked a fixed space for the chart. And in this chart, it is a horizontal bar charts for many category.

Here is the minimally reproducible code.

library(tidyverse)
library(plotly)

tibble(Category = str_c("Category ", seq(1, 20, 1)),
       Value = runif(20)) %>%
  plot_ly(
    y = ~ Category,
    x = ~ Value,
    type = "bar",
    hoverinfo = "text",
    hovertemplate = ~paste0(
      "Category: ", Category, "<br>",
      "Value: ", Value, 
      "<extra></extra>"
    ),
    marker = list(
      line = list(color = "#000000",
                  width = 1)
    )
  ) %>%
  layout(
    autosize = FALSE,
    showlegend = FALSE, 
    xaxis = list(
      title = "Value"
    ),
    yaxis = list(
      title = ""
    )
  ) 

The issue is that sometimes the number of categories varies. It can be 20 in this case, it can go up to 100.

What I would like to have is to fix the height of the horizontal bar regardless of the number of categories. So if there are more categories, the height of each bar will stay constant and the vertical scroll will appear to accommodate the extra bars.

Rplot

So far the solution prescribed online is to write a fixed formula for height and let Plotly auto-size itself. I took the cue from this site.

https://community.plotly.com/t/how-to-add-vertical-scroll-bar-on-horizontal-bar-chart/12342/2

The work-around suggests writing a formula on height based on the fixed formula

plot_height <- 500 + 10*nrow(df)

But this is not ideal. Sometimes I have only 1 category and the bar height is excessive. Sometimes I have 1000 categories and each of them looks like a stick.

I don't know. I thought having a fixed bar height for horizontal bar charts should be something quite fundamental, but it turns out exceedingly hard in Plotly.

Would appreciate any suggestions here.

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

Inizia con l’esempio R riproducibile, in particolare con i punti di ingresso plot_ly() e layout(), e analizza la soluzione alternativa della community di Plotly indicata. Determina se Plotly supporta una dimensione fissa delle barre orizzontali con scorrimento senza calcolare l’altezza del grafico. Il lavoro è completo quando esiste un approccio documentato o implementato che mantenga costante l’altezza delle barre per un numero variabile di categorie.

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

Valutazione

Stack tecnologico
plotly, r
Ambito
data-visualization
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
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.