def _update_experiment_plot(self):
     index_range = ChannelDataRange(trig_delay=0)
     index_range.sources = [self.data.contact_digital]
     index_mapper = LinearMapper(range=index_range)
     container = OverlayPlotContainer(padding=[20, 20, 50, 5])
     self._add_experiment_plots(index_mapper, container)
     # Add axes and grids to the first plot
     plot = container.components[0]
     add_default_grids(plot, minor_index=0.25, major_index=1)
     add_time_axis(plot, orientation='top')
     self.experiment_plot = container
 def _generate_experiment_plot(self):
     index_range = ChannelDataRange(trig_delay=0)
     index_range.sources = [self.data.spout_TTL]
     index_mapper = LinearMapper(range=index_range)
     self.index_range = index_range
     container = OverlayPlotContainer(padding=[20, 20, 50, 5])
     self._add_experiment_plots(index_mapper, container, 0.5)
     plot = container.components[0]
     add_default_grids(plot, major_index=1, minor_index=0.25)
     add_time_axis(plot, orientation='top')
     self.experiment_plot = container
    def _data_changed(self):
        index_range = ChannelDataRange(trig_delay=0)
        index_range.add(self.data.spout_TTL)
        index_mapper = LinearMapper(range=index_range)
        value_range = DataRange1D(low_setting=-0, high_setting=1)
        value_mapper = LinearMapper(range=value_range)
        container = OverlayPlotContainer(bgcolor='white', fill_padding=True,
                padding=50, spacing=50)

        # SIGNAL
        plot = TTLPlot(source=self.data.signal_TTL,
                index_mapper=index_mapper, value_mapper=value_mapper,
                fill_color=(0, 1, 0, 0.5), rect_height=0.2, rect_center=0.9)
        container.add(plot)

        # PUMP
        plot = TTLPlot(source=self.data.pump_TTL,
                index_mapper=index_mapper, value_mapper=value_mapper,
                fill_color=(0, 0, 1, 0.5), rect_height=0.2, rect_center=0.7)
        container.add(plot)

        # SPOUT
        plot = TTLPlot(source=self.data.spout_TTL, reference=0,
                index_mapper=index_mapper, value_mapper=value_mapper,
                fill_color=(1, 1, 1, 0.5), rect_height=0.2, rect_center=0.5)
        container.add(plot)

        # OVERRIDE
        plot = TTLPlot(source=self.data.override_TTL, reference=0,
                index_mapper=index_mapper, value_mapper=value_mapper,
                fill_color=(1, 0, 0, 0.5), rect_height=0.2, rect_center=0.3)
        container.add(plot)

        # FREE RUN
        plot = TTLPlot(source=self.data.free_run_TTL, reference=0,
                index_mapper=index_mapper, value_mapper=value_mapper,
                fill_color=(1, 0, 0, 0.5), rect_height=0.2, rect_center=0.1)
        container.add(plot)

        # Add the axes and grids
        grid = PlotGrid(mapper=plot.index_mapper, component=plot,
                orientation='vertical', line_color='lightgray',
                line_style='dot', grid_interval=0.25)
        plot.underlays.append(grid)
        grid = PlotGrid(mapper=plot.index_mapper, component=plot,
                orientation='vertical', line_color='lightgray',
                line_style='solid', grid_interval=1)
        plot.underlays.append(grid)

        add_time_axis(plot)
        add_default_grids(plot, major_index=1, minor_index=0.25)

        # set up microphone plot
        value_range = DataRange1D(low_setting=0, high_setting=80)
        value_mapper = LinearMapper(range=value_range)
        plot = RMSChannelPlot(source=self.data.microphone,
                index_mapper=index_mapper, value_mapper=value_mapper,
                line_color=(0, 0, 0, 0.25))
        self.microphone_plot = plot
        container.add(plot)

        self.contact_plot = container