I am using plotly to make some plots in my Django website. Creating the plots in python and saving them with to_html() is really fast. However, when I pass the html plot to render, they slow down the webpage loading times a lot (2-3 seconds per plot).
See times with and without the plot below (benchmarked on local server). What can I do to speed up the loading of this plot? Maybe plotly and to_html() is not the right way to do it?
Plot used for benchmark:
Plot code:
def sample_plot():
import numpy as np
import pandas as pd
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Barpolar(
r=[77.5, 72.5, 70.0, 45.0, 22.5, 42.5, 40.0, 62.5],
name='11-14 m/s',
marker_color='rgb(106,81,163)'
))
fig.add_trace(go.Barpolar(
r=[57.5, 50.0, 45.0, 35.0, 20.0, 22.5, 37.5, 55.0],
name='8-11 m/s',
marker_color='rgb(158,154,200)'
))
fig.add_trace(go.Barpolar(
r=[40.0, 30.0, 30.0, 35.0, 7.5, 7.5, 32.5, 40.0],
name='5-8 m/s',
marker_color='rgb(203,201,226)'
))
fig.add_trace(go.Barpolar(
r=[20.0, 7.5, 15.0, 22.5, 2.5, 2.5, 12.5, 22.5],
name='< 5 m/s',
marker_color='rgb(242,240,247)'
))
fig.update_traces(text=['North', 'N-E', 'East', 'S-E', 'South', 'S-W', 'West', 'N-W'])
fig.update_layout(
title='Wind Speed Distribution in Laurel, NE',
font_size=16,
legend_font_size=16,
polar_radialaxis_ticksuffix='%',
polar_angularaxis_rotation=90,
)
return fig.to_html(config={'displayModeBar': False})