-
Notifications
You must be signed in to change notification settings - Fork 52
Open
Labels
Description
kaleido==1.0.0
plotly==6.3.0The Scatter plot below using pandas dates look fine on the Notebook, but
- 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. - 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")