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

オープン
#396 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

@ayjayt がすでに取り組んでいます。

2025年8月26日 から。

評価

この issue はまだ評価されていません。

説明

bug P2
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")
主要言語
Python
スター
504
フォーク
65
平均マージ
6日 9時間
マージ済み PR(30日)
2

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

plotly/kaleido のほかの issue

plotly/kaleido の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。