code: def get_seasonality_plotly_props(m, name, uncertainty=True):
      """Prepares a dictionary for plotting the selected seasonality with Plotly
  
      Parameters
      ----------
      m: Prophet model.
      name: Name of the component to plot.
      uncertainty: Optional boolean to plot uncertainty intervals, which will
          only be done if m.uncertainty_samples > 0.
  
      Returns
      -------
      A dictionary with Plotly traces, xaxis and yaxis
      """
      prediction_color = "#0072B2"
      error_color = (
          "rgba(0, 114, 178, 0.2)"  # '#0072B2' with 0.2 opacity
      )
      line_width = 2
      zeroline_color = "#AAA"
  
      # Compute seasonality from Jan 1 through a single period.
      start = pd.to_datetime("2017-01-01 0000")
      period = m.seasonalities[name]["period"]
      end = start + pd.Timedelta(days=period)
      if (m.history["ds"].dt.hour == 0).all():  # Day Precision
          plot_points = np.floor(period).astype(int)
      elif (m.history["ds"].dt.minute == 0).all():  # Hour Precision
          plot_points = np.floor(period * 24).astype(int)
      else:  # Minute Precision
          plot_points = np.floor(period * 24 * 60).astype(int)
      days = pd.to_datetime(
          np.linspace(
              start.value, end.value, plot_points, endpoint=False
          )
      )
      df_y = seasonality_plot_df(m, days)
      seas = m.predict_seasonal_components(df_y)
  
      traces = []
      traces.append(
          go.Scatter(
              name=name,
              x=df_y["ds"],
              y=seas[name],
              mode="lines",
              line=go.scatter.Line(
                  color=prediction_color, width=line_width
              ),
          )
      )
      if (
          uncertainty
          and m.uncertainty_samples
          and (seas[name + "_upper"] != seas[name + "_lower"]).any()
      ):
          traces.append(
              go.Scatter(
                  name=name + "_upper",
                  x=df_y["ds"],
                  y=seas[name + "_upper"],
                  mode="lines",
                  line=go.scatter.Line(width=0, color=error_color),
              )
          )
          traces.append(
              go.Scatter(
                  name=name + "_lower",
                  x=df_y["ds"],
                  y=seas[name + "_lower"],
                  mode="lines",
                  line=go.scatter.Line(width=0, color=error_color),
                  fillcolor=error_color,
                  fill="tonexty",
              )
          )
  
      # Set tick formats (examples are based on 2017-01-06 21:15)
      if period <= 2:
          tickformat = "%H:%M"  # "21:15"
      elif period < 7:
          tickformat = "%A %H:%M"  # "Friday 21:15"
      elif period < 14:
          tickformat = "%A"  # "Friday"
      else:
          tickformat = "%B %e"  # "January  6"
  
      range_margin = (df_y["ds"].max() - df_y["ds"].min()) * 0.05
      xaxis = go.layout.XAxis(
          tickformat=tickformat,
          type="date",
          range=[
              df_y["ds"].min() - range_margin,
              df_y["ds"].max() + range_margin,
          ],
      )
  
      yaxis = go.layout.YAxis(
          title=go.layout.yaxis.Title(text=name),
          zerolinecolor=zeroline_color,
      )
      if m.seasonalities[name]["mode"] == "multiplicative":
          yaxis.update(tickformat="%", hoverformat=".2%")
  
      return {"traces": traces, "xaxis": xaxis, "yaxis": yaxis}
  
imports: from __future__ import absolute_import, division, print_function
  import logging
  import numpy
  import pandas
  from prophet.diagnostics import performance_metrics
label_desc: Use image node_id 16 for calling a global function with example usage: get_seasonality_plotly_props(m, name, uncertainty) and returns: dict