`updatemenus` > `buttons` don't behave as expected when restyling `y` axis (ignores `color` channel)
Open
Nobody has claimed this yet.
- Dominant language
- R
- Stars
- 2.7k
- Forks
- 641
- PR merge metrics
- No merged PRs in 30d
Description
library(plotly)
dat <- structure(list(date = structure(c(1230768000, 1230771600, 1230775200,
1230778800, 1230782400, 1230786000, 1230789600, 1230793200, 1230796800,
1230800400, 1230768000, 1230771600, 1230775200, 1230778800, 1230782400,
1230786000, 1230789600, 1230793200, 1230796800, 1230800400, 1230768000,
1230771600, 1230775200, 1230778800, 1230782400, 1230786000, 1230789600,
1230793200, 1230796800, 1230800400, 1230768000, 1230771600, 1230775200,
1230778800, 1230782400, 1230786000, 1230789600, 1230793200, 1230796800,
1230800400), tzone = "GMT", class = c("POSIXct", "POSIXt")),
nox = c(113, 40, 48, 36, 40, 50, 50, 53, 80, 111, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, 130, 63, 76, 69, 61, 61,
61, 92, 57, 50, 31, 34, 27, 19, 21, 25, 19, 31, 42, 48),
pm10 = c(46, 49, 46, NA, 38, 32, 36, 32, 30, 32, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, 53, 46, 45, 43, 37, 35, 37,
38, 33, 31, 44, 39, 40, 35, 34, 30, 28, 31, 29, 27), site = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), levels = c("1", "2",
"3", "4"), class = "factor")), row.names = c(NA, -40L), class = c("tbl_df",
"tbl", "data.frame"))
plot_ly(x = dat$date, y = dat$nox) |>
add_lines(color = dat$site) |>
layout(updatemenus = list(list(
type = "buttons",
y = 0.8,
buttons = list(
list(
method = "restyle",
args = list("y", list(dat$nox)),
label = "NO<sub>x</sub>"
),
list(
method = "restyle",
args = list("y", list(dat$pm10)),
label = "PM<sub>10</sub>"
)
)
)))
I would imagine that clicking the "NOx" button would do effectively nothing, but instead it seems to strip away the color feature of the plot.
Before clicking:
After clicking:
Am I doing something wrong, or is this a bug?
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 by running the provided R reproduction using plot_ly(), add_lines(color = dat$site), and the layout updatemenus buttons that call restyle on y. Trace how that restyle affects the colored traces; done means switching between NOx and PM10 changes the y data without removing the site color grouping.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- r
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100