Skip to content

Bug report – colour-mapped markers on a date x-axis reset axis to 1970 #5234

Open
@phisanti

Description

@phisanti

Hi

thank you for the great work on plotly for R. While building a simple time-series chart I noticed that mapping a numeric column to color inside a marker trace shifts the x-axis limits to the Unix epoch (1970-01-01). The same variable works fine when mapped to size. The reproducible examples below illustrate the behaviour. Any guidance or fix would be highly appreciated.

Reprex

library(plotly)
library(data.table)

# dummy data -------------------------------------------------------------
set.seed(1)
dt <- data.table(
  y            = cumsum(rnorm(200)),
  rank         = sample(1:100, 200, TRUE),
  size_metric  = rpois(200, 10),
  datetime     = seq(as.Date("2022-01-01"), by = "day", length.out = 200)
)

# -------- WORKS (no colour mapping) -------------------------------------
plot_ly(dt, type = "scatter", mode = "markers") |>
  add_trace(x = ~datetime, y = ~y,
            name = "points", size = ~size_metric) |>
  add_trace(x = ~datetime, y = ~y,
            name = "line", mode = "lines",
            line = list(color = "black"))
# x-axis shows correct 2022-20xx window

# -------- WORKS (size mapped to same field) -----------------------------
plot_ly(dt, type = "scatter", mode = "markers") |>
  add_trace(x = ~datetime, y = ~y,
            name = "points", size = ~rank) |>
  add_trace(x = ~datetime, y = ~y,
            name = "line", mode = "lines",
            line = list(color = "black"))
# ✓ still correct axis

# -------- FAILS (colour mapping) ----------------------------------------
plot_ly(dt, type = "scatter", mode = "markers") |>
  add_trace(x = ~datetime, y = ~y,
            name = "points", colour = ~rank) |>
  add_trace(x = ~datetime, y = ~y,
            name = "line", mode = "lines",
            line = list(color = "black"))
# ✗ x-axis resets to 1970-01-01

Expected

Axis limits stay within the data’s date range (2022-01-01 … 2022-07-20).

Actual

When colour = ~rank is used, the x-axis jumps to epoch 1970-01-01.

Tested with

packageVersion("plotly")  # 4.10.4
R.version.string          # R 4.3.2 (MacOS Darwing)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions