You could change `vmax=self.maxvalue` to `vmax=matrix.max()` so that the maximum value is readjusted each time the plot is updated. Otherwise, the scale might be very wide when the range of values in a plot is much narrower.