def METHOD_NAME(self):
    # Create the data and datasource objects
    # In order for the date axis to work, the index data points need to
    # be in units of seconds since the epoch.  This is because we are using
    # the CalendarScaleSystem, whose formatters interpret the numerical values
    # as seconds since the epoch.
    numpoints = 500
    index = create_dates(numpoints)
    returns = random.lognormal(0.01, 0.1, size=numpoints)
    price = 100.0 * cumprod(returns)
    volume = abs(random.normal(1000.0, 1500.0, size=numpoints) + 2000.0)
    time_ds = ArrayDataSource(index)
    vol_ds = ArrayDataSource(volume, sort_order="none")
    price_ds = ArrayDataSource(price, sort_order="none")
    # Create the price plots
    price_plot, mini_plot = self._create_price_plots(time_ds, price_ds)
    price_plot.index_mapper.domain_limits = (index[0], index[-1])
    self.price_plot = price_plot
    self.mini_plot = mini_plot
    # Create the volume plot
    vol_plot = self._create_vol_plot(time_ds, vol_ds)
    vol_plot.index_mapper.domain_limits = (index[0], index[-1])
    # Set the plot's bottom axis to use the Scales ticking system
    ticker = ScalesTickGenerator(scale=CalendarScaleSystem())
    for plot in price_plot, mini_plot, vol_plot:
        bottom_axis = PlotAxis(
            plot, orientation="bottom", tick_generator=ticker
        )
        plot.overlays.append(bottom_axis)
        plot.overlays.append(PlotAxis(plot, orientation="left"))
        hgrid, vgrid = add_default_grids(plot)
        vgrid.tick_generator = bottom_axis.tick_generator
    container = VPlotContainer(
        bgcolor="lightgray", spacing=40, padding=50, fill_padding=False
    )
    container.add(mini_plot, vol_plot, price_plot)
    return container