Problem with radialaxis ticks in polar plot when using date values
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 18.8k
- Forks
- 2.8k
- Avg merge
- 16h 26m
- Merged PRs (30d)
- 21
Description
Hello, I managed to create a polar heatmap plot following the examples given in #2024, but when trying to use time as the radial dimension I found some problems with the ticks. I tried with tickmodes auto, linear and array but got wrong ticks with all of them. The time values shown in the hover are correct, only the ticks appear to be wrong. Does anyone have a suggestion on what may be the problem?
Thank you.
import numpy as np
import pandas as pd
import plotly.graph_objects as go
from plotly.offline import plot
from datetime import datetime, timedelta
# dt_start, dt_end, dt_step ='2000-01-01', '2001-01-01', '1MS'
dt_start, dt_end, dt_step ='2000-01-01', '2000-01-10', '1D'
times = pd.date_range(dt_start, dt_end, freq=dt_step).values
dirs = np.arange(180, 271, 10)
r, theta = np.meshgrid(times, dirs)
z = np.random.random(r.shape)
hovertemplate = (f'date: %{{r|%Y-%m-%d %H:%M:%SZ}}<br>'
f'direction: %{{theta}}<br>'
f'value: %{{customdata[0]:.2f}}'
'<extra></extra>')
fig = go.Figure(go.Barpolar(r=r.ravel(),
theta=theta.ravel(),
marker_color=z.ravel(),
customdata=np.expand_dims(z.ravel(), 0).T,
hovertemplate=hovertemplate))
fig.update_layout(polar=dict(
angularaxis=dict(tickvals=np.arange(0, 360, 45),
direction='clockwise'),
radialaxis=dict(angle=45,
tickangle=45,
tickfont={'size': 14},
tickformat='%Y-%m-%d %H:%M:%S',
# tickmode='auto',
# nticks=5,
# tickmode='linear',
# tick0=times[0],
# dtick='1D',
tickmode='array',
tickvals=times,
)))
fig.show()
With tickmode='auto':

With tickmode='linear':

With tickmode='array':

Using plotly.version = '5.4.0'
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the provided Python example with Plotly 5.4.0 and compare the radial-axis ticks produced by auto, linear, and array modes. Trace the radialaxis tick handling for date-valued r data. Done means all three supported modes produce correctly positioned and formatted date ticks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100