Inconsistent behavior with numeric/non-numeric z values in heatmap
Nobody has claimed this yet.
- Dominant language
- R
- Stars
- 2.7k
- Forks
- 641
- PR merge metrics
- No merged PRs in 30d
Description
Hi,
I have a problem with a plotly heatmap in a shiny app, it is ok in Chrome but wrong in Firefox (Windows 10). And it happens until you click the heatmap. Here is the built app where I got the problem: https://violetr.shinyapps.io/tidytuesdaytweets/. Any idea?
Code to generate an app with only the heatmap:
library(shiny)
library(plotly)
#> Loading required package: ggplot2
#>
#> Attaching package: 'plotly'
#> The following object is masked from 'package:ggplot2':
#>
#> last_plot
#> The following object is masked from 'package:stats':
#>
#> filter
#> The following object is masked from 'package:graphics':
#>
#> layout
library(tidyverse)
library(lubridate)
#>
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#>
#> date
# Define UI for application that draws a histogram
ui <- shinyUI(fluidPage(
# Application title
title = "example_firefox",
h2("The graph:"),
plotlyOutput("distPlot", height = "160px", width = "550px"),
hr()
))
server <- shinyServer(function(input, output) {
all_dates_period <-
tibble(gen_date = as_date(as_date("2018-04-01"):as_date("2018-12-22"))) %>%
mutate(
month_name = month(gen_date, TRUE),
week_num = epiweek(gen_date), # to start on Sun
week_day = wday(gen_date, TRUE),
n = 0
)
base_to_heatmap <- all_dates_period %>%
select(-month_name, -gen_date)
output$distPlot <- renderPlotly({
to_heatmap <-
base_to_heatmap %>%
spread(key = week_num, value = n) %>%
as.data.frame()
matrix_heatmap <- as.matrix(to_heatmap)
matrix_heatmap <- matrix_heatmap[ nrow(matrix_heatmap):1, ]
mycols <- c("#ebedf0", "#c6e48b", "#7bc96f", "#239a3b", "#196127")
mypalette <- colorRamp(mycols)
library(plotly)
plot_ly(
z = matrix_heatmap,
type = "heatmap",
colors = mypalette, xgap = 0.5, ygap = 0.5,
showscale = FALSE
) %>%
layout(
yaxis = list(
ticks = "",
# ticktext = lab_row_days,
tickmode = "array",
tickfont = list(color = "86888A"),
tickvals = 0:6,
zeroline = FALSE
),
xaxis = list(
side = "top",
# ticktext = lab_column_months,
ticks = "",
tickmode = "array", tickangle = 0,
tickfont = list(color = "86888A"),
tickvals = 0:38,
zeroline = FALSE
)
) %>%
config(displayModeBar = FALSE)
})
})
# Run the application
shinyApp(ui = ui, server = server)
Shiny applications not supported in static R Markdown documents
Created on 2019-01-08 by the reprex package (v0.2.1)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the minimal Shiny app in the issue and run its plot_ly heatmap reproduction in Chrome and Firefox. Focus on the matrix_heatmap passed as z and the differing behavior before and after clicking. Done means the supplied heatmap renders consistently without requiring a click.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- r
- Domain
- data-visualization, frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100