From 2dc31b53dae47cef7eb3d84d1406a7b727cf1e9e Mon Sep 17 00:00:00 2001 From: Justin Engel Date: Thu, 13 Jul 2017 08:25:45 -0400 Subject: [PATCH 1/4] Fixed dataBounds error when all values were inf. If all values are inf. d = d[mask] will create an empty array. You cannot call min or max on an empty array. --- pyqtgraph/graphicsItems/PlotCurveItem.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pyqtgraph/graphicsItems/PlotCurveItem.py b/pyqtgraph/graphicsItems/PlotCurveItem.py index d66a8a99..4b876eb5 100644 --- a/pyqtgraph/graphicsItems/PlotCurveItem.py +++ b/pyqtgraph/graphicsItems/PlotCurveItem.py @@ -132,7 +132,11 @@ class PlotCurveItem(GraphicsObject): if any(np.isinf(b)): mask = np.isfinite(d) d = d[mask] - b = (d.min(), d.max()) + try: + b = (d.min(), d.max()) + except ValueError: + # d has no size, because all of d is inf. + b = (-1, 1) # Some default bounds elif frac <= 0.0: raise Exception("Value for parameter 'frac' must be > 0. (got %s)" % str(frac)) From 70831245a838e6471ebe493c4587f208dcb10baa Mon Sep 17 00:00:00 2001 From: HashSplat Date: Tue, 8 Aug 2017 14:58:33 -0400 Subject: [PATCH 2/4] Fixed issue where ImageItem data size would be 0 due to colormap. --- pyqtgraph/graphicsItems/ImageItem.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyqtgraph/graphicsItems/ImageItem.py b/pyqtgraph/graphicsItems/ImageItem.py index 3d45ad77..706735bd 100644 --- a/pyqtgraph/graphicsItems/ImageItem.py +++ b/pyqtgraph/graphicsItems/ImageItem.py @@ -401,7 +401,8 @@ class ImageItem(GraphicsObject): image = image.transpose((1, 0, 2)[:image.ndim]) argb, alpha = fn.makeARGB(image, lut=lut, levels=levels) - self.qimage = fn.makeQImage(argb, alpha, transpose=False) + if argb.size > 0: + self.qimage = fn.makeQImage(argb, alpha, transpose=False) def paint(self, p, *args): profile = debug.Profiler() From e7ba0ca272122952dc2bdbb62bde8df51e6e6966 Mon Sep 17 00:00:00 2001 From: HashSplat Date: Tue, 8 Aug 2017 15:35:54 -0400 Subject: [PATCH 3/4] Found that downsample would set the image size to 0 causing errors. --- pyqtgraph/graphicsItems/ImageItem.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pyqtgraph/graphicsItems/ImageItem.py b/pyqtgraph/graphicsItems/ImageItem.py index 706735bd..411eaf5a 100644 --- a/pyqtgraph/graphicsItems/ImageItem.py +++ b/pyqtgraph/graphicsItems/ImageItem.py @@ -368,6 +368,10 @@ class ImageItem(GraphicsObject): image = fn.downsample(self.image, xds, axis=axes[0]) image = fn.downsample(image, yds, axis=axes[1]) self._lastDownsample = (xds, yds) + + # Check if downsampling reduced the image size to zero due to inf values. + if image.size == 0: + return else: image = self.image @@ -401,8 +405,7 @@ class ImageItem(GraphicsObject): image = image.transpose((1, 0, 2)[:image.ndim]) argb, alpha = fn.makeARGB(image, lut=lut, levels=levels) - if argb.size > 0: - self.qimage = fn.makeQImage(argb, alpha, transpose=False) + self.qimage = fn.makeQImage(argb, alpha, transpose=False) def paint(self, p, *args): profile = debug.Profiler() From baba93dc604a5aaf27a7c6fd0c008e2ea22073dd Mon Sep 17 00:00:00 2001 From: Justin Engel Date: Tue, 8 Aug 2017 15:51:32 -0400 Subject: [PATCH 4/4] temporarily removed min max fix for pull request --- pyqtgraph/graphicsItems/PlotCurveItem.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pyqtgraph/graphicsItems/PlotCurveItem.py b/pyqtgraph/graphicsItems/PlotCurveItem.py index 4b876eb5..d66a8a99 100644 --- a/pyqtgraph/graphicsItems/PlotCurveItem.py +++ b/pyqtgraph/graphicsItems/PlotCurveItem.py @@ -132,11 +132,7 @@ class PlotCurveItem(GraphicsObject): if any(np.isinf(b)): mask = np.isfinite(d) d = d[mask] - try: - b = (d.min(), d.max()) - except ValueError: - # d has no size, because all of d is inf. - b = (-1, 1) # Some default bounds + b = (d.min(), d.max()) elif frac <= 0.0: raise Exception("Value for parameter 'frac' must be > 0. (got %s)" % str(frac))