FIX: Protection over downsampling calculation.

This commit is contained in:
Hugo Slepicka 2018-10-05 14:18:09 -07:00
parent 574c5f3a47
commit 984eb5ed29

View File

@ -527,14 +527,15 @@ class PlotDataItem(GraphicsObject):
if self.opts['autoDownsample']:
# this option presumes that x-values have uniform spacing
range = self.viewRect()
if range is not None:
if range is not None and len(x) > 1:
dx = float(x[-1]-x[0]) / (len(x)-1)
x0 = (range.left()-x[0]) / dx
x1 = (range.right()-x[0]) / dx
width = self.getViewBox().width()
if width != 0.0:
ds = int(max(1, int((x1-x0) / (width*self.opts['autoDownsampleFactor']))))
## downsampling is expensive; delay until after clipping.
if dx != 0.0:
x0 = (range.left()-x[0]) / dx
x1 = (range.right()-x[0]) / dx
width = self.getViewBox().width()
if width != 0.0:
ds = int(max(1, int((x1-x0) / (width*self.opts['autoDownsampleFactor']))))
## downsampling is expensive; delay until after clipping.
if self.opts['clipToView']:
view = self.getViewBox()