code: def plot_graph(_):
      ctx = callback_context
      if (
          not len(ctx.triggered)
          or PLOT_BTN_ID not in ctx.triggered[0]["prop_id"]
      ):
          return no_update
  
      # 1. Create the figure and add data
      fig = FigureResampler(
          # fmt: off
          go.Figure(layout=dict(
              # dragmode="pan",
              hovermode="x unified",
              xaxis=dict(rangeselector=dict(buttons=list([
                  dict(count=7, label="1 week", step="day", stepmode="backward"),
                  dict(count=1, label="1 month", step="month", stepmode="backward"),
                  dict(count=2, label="2 months", step="month", stepmode="backward"),
                  dict(count=1, label="1 year", step="year", stepmode="backward"),
              ]))),
          )),
          # fmt: on
          default_downsampler=MinMaxLTTB(parallel=True),
          create_overview=True,
      )
  
      # Figure construction logic
      log = noisy_sin * 0.9999995**x
      exp = noisy_sin * 1.000002**x
      fig.add_trace(go.Scattergl(name="log"), hf_x=x_time, hf_y=log)
      fig.add_trace(go.Scattergl(name="exp"), hf_x=x_time, hf_y=exp)
  
      fig.update_layout(
          legend=dict(
              orientation="h",
              yanchor="bottom",
              y=1.02,
              xanchor="right",
              x=1,
          )
      )
      fig.update_layout(
          margin=dict(b=10),
          template="plotly_white",
          height=650,  # , hovermode="x unified",
          # https://plotly.com/python/custom-buttons/
          updatemenus=[
              dict(
                  type="buttons",
                  x=0.45,
                  xanchor="left",
                  y=1.09,
                  yanchor="top",
                  buttons=[
                      dict(
                          label="reset axes",
                          method="relayout",
                          args=[
                              {
                                  "xaxis.autorange": True,
                                  "yaxis.autorange": True,
                                  "xaxis.showspikes": True,
                                  "yaxis.showspikes": False,
                              }
                          ],
                      ),
                  ],
              )
          ],
      )
      # fig.update_traces(xaxis="x")
      # fig.update_xaxes(showspikes=True, spikemode="across", spikesnap="cursor")
  
      coarse_fig = fig._create_overview_figure()
      return fig, coarse_fig, Serverside(fig)
  
file_path: plotly-resampler/examples/dash_apps/06_cache_overview_range_buttons.py
imports: import dash
  import numpy
  import pandas
  import plotly.graph_objects
  from dash import Input, Output, State, callback_context, dcc, html, no_update
  from dash_extensions.enrich import DashProxy, Serverside, ServersideOutputTransform
  from plotly_resampler import ASSETS_FOLDER, FigureResampler
  from plotly_resampler.aggregation import MinMaxLTTB
label_desc: Use image node_id 1 for calling a global function with example usage: plot_graph(_) and returns: fig,  coarse_fig,  Serverside, no_update