plotly / plotly/Kaleido

Export to png ; Export to html/png requires explicit range specified for dates (pd.DateTimeIndex)

Open
#396 0 comments 0 reactions 1 assignee View on GitHub

@ayjayt is already working on this.

Since Aug 26, 2025.

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

Description

kaleido==1.0.0
plotly==6.3.0

The Scatter plot below using pandas dates look fine on the Notebook, but

  1. When exporting to html and png, the range needs to be set explicitly range=[dates.min(), dates.max()]. Otherwise the default starts from Jan 2000.
  2. For png export, after the explicit fix above, the x-axis range is corrected, but the line disappeared.

There's a workaround which is to convert the dates to str for the x data values first x=dates.strftime("%Y-%m-%d") but this is a gotcha.

    # Sample time series data
    dates = pd.date_range(start="2024-01-01", periods=30, freq="D")
    values = [20 + i + (i % 7) * 3 for i in range(30)]  # Trending data with weekly pattern

    # Create line chart with Graph Objects
    fig = go.Figure()

    fig.add_trace(
        go.Scatter(
            x=dates,  # Plotly handles pandas DatetimeIndex directly
            y=values,
            mode="lines+markers",
            name="Daily Values",
            line=dict(color="blue", width=2),
            marker=dict(size=4),
        )
    )

    # Update layout with explicit date range
    fig.update_layout(
        title="Basic Line Chart - Graph Objects API",
        xaxis_title="Date",
        yaxis_title="Value",
        width=800,
        height=600,
        showlegend=True,
        xaxis=dict(
            type="date",
            # Explicitly set the date range for html and image export
            range=[dates.min(), dates.max()]
        ),
    )

    # Save as HTML and PNG
    fig.write_html(data_dir / "01_basic_line.html")
    fig.write_image(data_dir / "01_basic_line.png")

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.