-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Open
Labels
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'


