plotly / plotly/Kaleido

Gantt chart export with kaleido v1.0.0 shows 1970 epoch

Open
#392 3 comments 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug P2
Dominant language
Python
Stars
498
Forks
62
Avg merge
1d 11h
Merged PRs (30d)
2

Description

Problem Description

I'm reporting a bug with the new kaleido v1.0.0 engine, when I make a Gantt chart with plotly.express.timeline. The issue is how it handles my datetime objects (and with sting date) when I try to save a static image.

I found the problem in a couple of ways:

  1. When I run fig.show() in my Jupyter Notebook, the chart looks perfect with the right 2025 dates. But when I save that same figure with fig.write_image(), I get a broken image. Its x-axis starts at 1970.
  2. I get the exact same broken image with 1970 dates when I run my code as a normal Python script.

It really makes me think this is a regression bug in the kaleido v1.0.0 renderer.

Minimal Reproducible Example

This script will always create the error. The /// script part is there for anyone using a tool like Astral's uv.

# /// script
# requires-python = "==3.13.1"
# dependencies = [
#     "pandas==2.3.1",
#     "plotly==6.3.0",
#     "kaleido==1.0.0",
# ]
# ///

import pandas as pd
import plotly.express as px

data: list[dict] = [
    dict(Start="2025-08-16", Finish="2025-08-30", Task="Data Collection"),
    dict(Start="2025-08-25", Finish="2025-09-15", Task="Identifying Problem"),
    dict(Start="2025-09-13", Finish="2025-09-30", Task="Review & Submission"),
]

df: pd.DataFrame = pd.DataFrame(data)
df.Start = pd.to_datetime(df.Start)
df.Finish = pd.to_datetime(df.Finish)

fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color="Task")
fig.update_layout(template="presentation")
fig.update_layout(autosize=False, width=1000, height=300, margin=dict(l=270, r=10))

fig.update_layout(
    showlegend=False,
    title="Gantt Chart",
    bargap=0.45,
)

# This makes the wrong image
fig.write_image("Gantt_Chart.png")

Expected Behavior

I expected my saved file Gantt_Chart.png to show a chart with an x-axis properly showing dates in August and September 2025.

Image

Actual Behavior

What I actually got in Gantt_Chart.png was a chart where the x-axis starts near January 5, 1970.

Image

Working Environment Confirmation

I ran a control test to be sure. I tested my same code in an environment with older libraries:

  • plotly==6.0.0
  • kaleido==0.2.1

In that setup, the bug is gone. My list of confirmations show that the static image Gantt_Chart.png saves perfect with the right 2025 dates.

Image

This points me to think the problem is a regression in the newer code.

Failing Environment

  • Python: 3.13.1
  • pandas: 2.3.1
  • plotly: 6.3.0
  • kaleido: 1.0.0

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the minimal Python example with pandas 2.3.1, plotly 6.3.0, and kaleido 1.0.0, then compare the exported image with the older kaleido 0.2.1 environment. Trace the static export path for timeline date values; done means Gantt_Chart.png preserves the August and September 2025 x-axis dates.

Written by the indexing model from the issue text.

Assessment

Tech stack
pandas, python
Domain
data-visualization
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.