def write_values(self, position, values, set_marker=False):
        if set_marker:
            self.pixel_array[position, :] = self.marker_colour
        else:
            self.pixel_array[position, :] = self._background_colour
        if self._plot_axis and self.axis_colour != self._background_colour:
            self.pixel_array[position, self._y_range[1]:self._y_range[1] + 1] = \
                self.axis_colour

        for c, plot_value in enumerate(self._y_range[1] - \
                np.array(values, dtype=int)):
            if plot_value >= 0 and self._previous[c] >= 0 \
                    and plot_value <= self._height and \
                            self._previous[c] <= self._height:
                if self._previous[c] > plot_value:
                    self.pixel_array[position,
                    plot_value:self._previous[c] + 1] = \
                        self._data_row_colours[c]
                else:
                    self.pixel_array[position,
                    self._previous[c]:plot_value + 1] = \
                        self._data_row_colours[c]
            self._previous[c] = plot_value