예제 #1
0
    def _plot_last_data(self, data):

        if len(data)==0:
            plottable_data = np.zeros((16, 16, 3), dtype = np.uint8)
            clims = (0, 1)
        else:
            if isinstance(data, list):
                data = put_list_of_images_in_array(data, fill_colour=(np.nan, np.nan, np.nan))
            elif data.ndim == 1:
                data = data[None]

            clims = ((np.nanmin(data), np.nanmax(data)) if data.size != 0 else (0, 1)) if self._clims is None else self._clims

            if self.only_grow_clims:
                clims = min(self._old_clims[0], clims[0]), max(self._old_clims[1], clims[1])
                self._old_clims = clims

            if self._is_colour_data is None:
                self._is_colour_data = data.shape[-1]==3

            plottable_data = put_data_in_grid(data, clims = clims, cmap = self._cmap, is_color_data = self._is_colour_data, fill_colour = np.array((0, 0, 128)), nan_colour = np.array((0, 0, 128))) \
                if not (self._is_colour_data and data.ndim==3 or data.ndim==2) else \
                data_to_image(data, clims = clims, cmap = self._cmap, nan_colour = np.array((0, 0, 128)))

        if self._plot is None:
            self._plot = plt.imshow(plottable_data, interpolation = self._interpolation, aspect = self._aspect, cmap = self._cmap)
            if not self._show_axes:
                self._plot.axes.tick_params(labelbottom = 'off')
                self._plot.axes.get_yaxis().set_visible(False)
        else:
            self._plot.set_array(plottable_data)
        if self.show_clims:
            self._plot.axes.set_xlabel('%.2f - %.2f' % clims)
예제 #2
0
    def _plot_last_data(self, data):

        if self.channel_first:
            if data.ndim == 3:
                assert data.shape[0] in (1, 3)
                data = np.rollaxis(data, 0, 3)
            elif data.ndim == 4:
                assert data.shape[1] in (1, 3)
                data = np.rollaxis(data, 1, 4)
            else:
                print(
                    'Image should be 3D (3, size_y, size_x) or 4D (n_images, 3, size_y, size_x) for channel-first-mode.'
                )

        if len(data) == 0:
            plottable_data = np.zeros((16, 16, 3), dtype=np.uint8)
            clims = (0, 1)
        else:
            if isinstance(data, list):
                data = put_list_of_images_in_array(data,
                                                   fill_colour=(np.nan, np.nan,
                                                                np.nan))
            elif data.ndim == 1:
                data = data[None]

            clims = ((np.nanmin(data), np.nanmax(data)) if data.size != 0 else
                     (0, 1)) if self._clims is None else self._clims

            if self.only_grow_clims:
                clims = min(self._old_clims[0],
                            clims[0]), max(self._old_clims[1], clims[1])
                self._old_clims = clims

            if self._is_colour_data is None:
                self._is_colour_data = data.shape[-1] == 3

            plottable_data = put_data_in_grid(data, clims = clims, cmap = self._cmap, is_color_data = self._is_colour_data, fill_colour = np.array((0, 0, 128)), nan_colour = np.array((0, 0, 128))) \
                if not (self._is_colour_data and data.ndim==3 or data.ndim==2) else \
                data_to_image(data, clims = clims, cmap = self._cmap, nan_colour = np.array((0, 0, 128)))

        if self._plot is None:
            self._plot = plt.imshow(plottable_data,
                                    interpolation=self._interpolation,
                                    aspect=self._aspect,
                                    cmap=self._cmap)
            if not self._show_axes:
                self._plot.axes.tick_params(labelbottom='off')
                self._plot.axes.get_yaxis().set_visible(False)
        else:
            self._plot.set_array(plottable_data)
        if self.show_clims:
            self._plot.axes.set_xlabel('{:.3g} <> {:.3g}'.format(*clims))
예제 #3
0
    def _plot_last_data(self, data):

        if self.channel_first:
            if data.ndim==3:
                assert data.shape[0] in (1, 3)
                data = np.rollaxis(data, 0, 3)
            elif data.ndim==4:
                assert data.shape[1] in (1, 3)
                data = np.rollaxis(data, 1, 4)
            else:
                print('Image should be 3D (3, size_y, size_x) or 4D (n_images, 3, size_y, size_x) for channel-first-mode.')

        if len(data)==0:
            plottable_data = np.zeros((16, 16, 3), dtype = np.uint8)
            clims = (0, 1)
        else:
            if isinstance(data, list):
                data = put_list_of_images_in_array(data, fill_colour=(np.nan, np.nan, np.nan))
            elif data.ndim == 1:
                data = data[None]

            clims = ((np.nanmin(data), np.nanmax(data)) if data.size != 0 else (0, 1)) if self._clims is None else self._clims

            if self.only_grow_clims:
                clims = min(self._old_clims[0], clims[0]), max(self._old_clims[1], clims[1])
                self._old_clims = clims

            if self._is_colour_data is None:
                self._is_colour_data = data.shape[-1]==3

            plottable_data = put_data_in_grid(data, clims = clims, cmap = self._cmap, is_color_data = self._is_colour_data, fill_colour = np.array((0, 0, 128)), nan_colour = np.array((0, 0, 128))) \
                if not (self._is_colour_data and data.ndim==3 or data.ndim==2) else \
                data_to_image(data, clims = clims, cmap = self._cmap, nan_colour = np.array((0, 0, 128)))

        if self._plot is None:
            self._plot = plt.imshow(plottable_data, interpolation = self._interpolation, aspect = self._aspect, cmap = self._cmap)
            if not self._show_axes:
                self._plot.axes.tick_params(labelbottom = 'off')
                self._plot.axes.get_yaxis().set_visible(False)
        else:
            self._plot.set_array(plottable_data)
        if self.show_clims:
            self._plot.axes.set_xlabel('{:.3g} <> {:.3g}'.format(*clims))