You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to include the total counts next to the month's names however I am struggling to make calplot to carry on with ticks for the second year as it starts the ticks array again from 0. Is there anything I can do to achieve what I am after?
def create_calplot(df, x='ds', y='value', title='', colorscale='aggrnyl'):
"""Create the calplot figure"""
# Generate a complete range of dates for the desired period (one year back from today)
end_date = datetime.today().date()
start_date = end_date - timedelta(days=365)
start_date = start_date.replace(month=1, day=1)
date_range = pd.date_range(start=start_date, end=end_date)
# Convert date column to datetime and ensure only dates
df[x] = pd.to_datetime(df[x]).dt.date
# Create a dataframe with all dates and merge with the original dataframe
complete_df = pd.DataFrame(date_range, columns=[x])
complete_df[x] = complete_df[x].dt.date
complete_df = complete_df.merge(df, on=x, how='left')
# Fill NaN values
complete_df[y].fillna(0, inplace=True)
# Create a new column for year-month
complete_df['year_month'] = pd.to_datetime(complete_df[x]).dt.to_period('M')
# Calculate the number of returns for each year-month
month_counts = complete_df.groupby('year_month')[y].sum()
# Prepare month names with counts
month_names_with_counts = [f"{month.strftime('%B %Y')} ({month_counts.iloc[i]})" for i, month in enumerate(pd.period_range(start=start_date, end=end_date, freq='M'))]
# Create the calplot figure
fig = calplot(
data=complete_df,
x=x,
y=y,
colorscale=colorscale,
month_lines_width=1.3,
month_lines_color='black',
title=title
)
fig.update_xaxes(
tickmode='array',
ticktext=month_names_with_counts,
tickangle=0,
)
fig.update_layout(
paper_bgcolor='rgba(0,0,0,0)',
plot_bgcolor='rgba(0,0,0,0)',
xaxis=dict(
showgrid=False,
zeroline=False,
tickangle=0
),
yaxis=dict(
showgrid=False,
zeroline=False
)
)
return dcc.Graph(figure=fig, id='heatcal')```
The text was updated successfully, but these errors were encountered:
I am trying to include the total counts next to the month's names however I am struggling to make calplot to carry on with ticks for the second year as it starts the ticks array again from 0. Is there anything I can do to achieve what I am after?
The text was updated successfully, but these errors were encountered: