From 1e2ec32dbdef4d682688875ee18b1b298fa5d853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathias=20M=C3=B8rch?= Date: Fri, 11 Mar 2022 10:16:24 +0100 Subject: [PATCH] Setting and plotting NaN values When reading XYY files, and column 2 (Calculated values) are 0, set these to NaN. Use connect = 'finite' in plots, to avoid connecting lines to Nan values. --- Reel1.0/_lib/ReelPlotWidgets.py | 11 ++++------- Reel1.0/_lib/ReelRead.py | 2 ++ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Reel1.0/_lib/ReelPlotWidgets.py b/Reel1.0/_lib/ReelPlotWidgets.py index ff955f1..2a0a78c 100644 --- a/Reel1.0/_lib/ReelPlotWidgets.py +++ b/Reel1.0/_lib/ReelPlotWidgets.py @@ -291,9 +291,9 @@ def __init__(self): self.legend = self.addLegend() self.setLimits(xMin=0, xMax=180) #Add plots - self.pobs = self.plot(x=[0],y=[0], name='Observed', pen=None, symbol='o', symbolPen='r', symbolSize=2) - self.pcal = self.plot(x=[0],y=[0], name='Calculated') - self.pres = self.plot(x=[0],y=[0], name='Residual', pen=pg.mkPen(color=(0,0,255), width=0.5)) + self.pobs = self.plot(x=[0],y=[0], name='Observed', pen=None, symbol='o', symbolPen='r', symbolSize=2, connect ='finite') + self.pcal = self.plot(x=[0],y=[0], name='Calculated', connect ='finite') + self.pres = self.plot(x=[0],y=[0], name='Residual', pen=pg.mkPen(color=(0,0,255), width=0.5), connect ='finite') self.psub = {} @@ -324,7 +324,7 @@ def addSubplot(self,key=None): self._getColors(exclude=('red','blue','gray')) color = self.colors.pop(0) pen = pg.mkPen(color=color, style=QtCore.Qt.DashLine) - self.psub[key]=self.plot(x=[0],y=[0], name=key, pen=pen) + self.psub[key]=self.plot(x=[0],y=[0], name=key, pen=pen, connect ='finite') def removeSubplots(self): for item in self.psub.values(): @@ -338,9 +338,6 @@ def setObsData(self,x,y): self.pobs.setData(x,y) def setCalData(self,x,y): - #Remove NAN values - x = x[~np.isnan(y)] - y = y[~np.isnan(y)] self.pcal.setData(x,y) def setResData(self,x,y): diff --git a/Reel1.0/_lib/ReelRead.py b/Reel1.0/_lib/ReelRead.py index d0da3b1..54e2763 100644 --- a/Reel1.0/_lib/ReelRead.py +++ b/Reel1.0/_lib/ReelRead.py @@ -19,6 +19,8 @@ def readXYY(fname): header.append(line) parameters = f.readline().split() data = np.loadtxt(f,dtype='float32') + # set columns values to nan, when calculated is 0 + data[:,2:][data[:,2]==0]=np.nan h = {'Filename':header[0]} comments = header.index('COMMENTS\n') h['Comments']=''.join(header[comments+1:-1])