plotly / plotly/plotly.R

Some heatmap labels not visible when other layers added (e.g. with `add_trace`)

Aperta
#2,069 0 commenti 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

Hi, thanks a lot for making such a great package :)!

I have the issue with labels. One can create a heatmap in plotly and see the labels (ht object). But once the new layer is added (e.g. with add_trace) the labels from the previous layer are not visible (ht_a1 object). Disabling labels from the second layer does not help (ht_a2 and ht_a3).

https://user-images.githubusercontent.com/41166437/140326488-f539949b-5baf-4e32-ad17-d3eb574cccf7.mp4

Both potential workaround are suboptimal (ht_a4 and ht_a5).

Thanks in advance for you help!

df <-
  data.frame(x = rep(1:10, 10),
             y = rep(1:10, each = 10),
             z = sample(1:100))
ht <-
  plotly::plot_ly(
    type = "heatmap",
    x = df$x,
    y = df$y,
    z = df$z
  )

# two layers: heatmap and single line
# some cells with heatmap labels (e.g. [2, 1], [1, 2], some with line labels (e.g. [1,1], [2,2]))
ldf <- data.frame(x = 1:8, y = c(1:5, 4:2))
ht_a1 <-
  plotly::add_paths(ht,
                    x = ldf$x,
                    y = ldf$y,
                    inherit = FALSE)

### disabling labels for single line does not enable labels for heatmap in related cells
ht_a2 <-
  plotly::add_paths(
    ht,
    x = ldf$x,
    y = ldf$y,
    inherit = FALSE,
    hoverinfo = "skip"
  )

ht_a3 <-
  plotly::add_paths(
    ht,
    x = ldf$x,
    y = ldf$y,
    inherit = FALSE,
    hoverinfo = "none"
  )
plotly::layout(ht_a3, hovermode="x")

## workaround #1 (restore labels from `heatmap` on the `line` layer)
ldf$z_idx <- ldf$x + 10 * (ldf$y - 1)
ldf$z <- df$z[ldf$z_idx]
ldf$label <- sprintf("x:%s\ny:%s\nz:%s", ldf$x, ldf$y, ldf$z)
ht_a4 <-
  plotly::add_paths(
    ht,
    x = ldf$x,
    y = ldf$y,
    inherit = FALSE,
    text = ldf$label,
    hoverinfo = "text"
  )

## workaround #2 (use with hovermode == "x")
# results in undesired behaviour (additional labels appearing)
ht_a5 <-
  plotly::add_paths(
    ht,
    x = ldf$x,
    y = ldf$y,
    inherit = FALSE,
    hoverinfo = "skip"
  ) %>% plotly::layout(hovermode = "x")


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 eseguendo la riproduzione R fornita e confronta solo la heatmap con ht_a1, ht_a2 e ht_a3 dopo add_paths. Traccia il comportamento delle etichette della heatmap e di hoverinfo quando viene aggiunto un altro layer; il lavoro è terminato quando le etichette originali della heatmap rimangono visibili senza richiedere nessuno dei due workaround.

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.