Set a `PlotItem.viz` for interaction lookup
Inside `._interaction` routines we need access to `Viz` instances. Instead of doing `CharPlotWidget._vizs: dict` lookups this ensures each plot can lookup it's (parent) viz without error. Also, adjusts `Viz.maxmin()` output parsing to new signature.multichartz
							parent
							
								
									c9f7083b79
								
							
						
					
					
						commit
						fdda0c6f77
					
				| 
						 | 
					@ -629,11 +629,13 @@ class LinkedSplits(QWidget):
 | 
				
			||||||
        for axis in axes.values():
 | 
					        for axis in axes.values():
 | 
				
			||||||
            axis.pi = cpw.plotItem
 | 
					            axis.pi = cpw.plotItem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        cpw.hideAxis('left')
 | 
					        cpw.hideAxis('left')
 | 
				
			||||||
        cpw.hideAxis('bottom')
 | 
					        cpw.hideAxis('bottom')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (
 | 
					        if (
 | 
				
			||||||
            _xaxis_at == 'bottom' and (
 | 
					            _xaxis_at == 'bottom'
 | 
				
			||||||
 | 
					            and (
 | 
				
			||||||
                self.xaxis_chart
 | 
					                self.xaxis_chart
 | 
				
			||||||
                or (
 | 
					                or (
 | 
				
			||||||
                    not self.subplots
 | 
					                    not self.subplots
 | 
				
			||||||
| 
						 | 
					@ -641,6 +643,8 @@ class LinkedSplits(QWidget):
 | 
				
			||||||
                )
 | 
					                )
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
        ):
 | 
					        ):
 | 
				
			||||||
 | 
					            # hide the previous x-axis chart's bottom axis since we're
 | 
				
			||||||
 | 
					            # presumably being appended to the bottom subplot.
 | 
				
			||||||
            if self.xaxis_chart:
 | 
					            if self.xaxis_chart:
 | 
				
			||||||
                self.xaxis_chart.hideAxis('bottom')
 | 
					                self.xaxis_chart.hideAxis('bottom')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -685,7 +689,12 @@ class LinkedSplits(QWidget):
 | 
				
			||||||
        # link chart x-axis to main chart
 | 
					        # link chart x-axis to main chart
 | 
				
			||||||
        # this is 1/2 of where the `Link` in ``LinkedSplit``
 | 
					        # this is 1/2 of where the `Link` in ``LinkedSplit``
 | 
				
			||||||
        # comes from ;)
 | 
					        # comes from ;)
 | 
				
			||||||
        cpw.setXLink(self.chart)
 | 
					        cpw.cv.setXLink(self.chart)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # NOTE: above is the same as the following,
 | 
				
			||||||
 | 
					        # link this subchart's axes to the main top level chart.
 | 
				
			||||||
 | 
					        # if self.chart:
 | 
				
			||||||
 | 
					        #     cpw.cv.linkView(0, self.chart.cv)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        add_label = False
 | 
					        add_label = False
 | 
				
			||||||
        anchor_at = ('top', 'left')
 | 
					        anchor_at = ('top', 'left')
 | 
				
			||||||
| 
						 | 
					@ -797,7 +806,9 @@ class LinkedSplits(QWidget):
 | 
				
			||||||
# write our own wrapper around `PlotItem`..
 | 
					# write our own wrapper around `PlotItem`..
 | 
				
			||||||
class ChartPlotWidget(pg.PlotWidget):
 | 
					class ChartPlotWidget(pg.PlotWidget):
 | 
				
			||||||
    '''
 | 
					    '''
 | 
				
			||||||
    ``GraphicsView`` subtype containing a single ``PlotItem``.
 | 
					    ``GraphicsView`` subtype containing a ``.plotItem: PlotItem`` as well
 | 
				
			||||||
 | 
					    as a `.pi_overlay: PlotItemOverlay`` which helps manage and overlay flow
 | 
				
			||||||
 | 
					    graphics view multiple compose view boxes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - The added methods allow for plotting OHLC sequences from
 | 
					    - The added methods allow for plotting OHLC sequences from
 | 
				
			||||||
      ``np.ndarray``s with appropriate field names.
 | 
					      ``np.ndarray``s with appropriate field names.
 | 
				
			||||||
| 
						 | 
					@ -1098,6 +1109,7 @@ class ChartPlotWidget(pg.PlotWidget):
 | 
				
			||||||
        # view **to** this parent and likewise *from* the
 | 
					        # view **to** this parent and likewise *from* the
 | 
				
			||||||
        # main/parent chart back *to* the created overlay.
 | 
					        # main/parent chart back *to* the created overlay.
 | 
				
			||||||
        cv.enable_auto_yrange(src_vb=self.view)
 | 
					        cv.enable_auto_yrange(src_vb=self.view)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # makes it so that interaction on the new overlay will reflect
 | 
					        # makes it so that interaction on the new overlay will reflect
 | 
				
			||||||
        # back on the main chart (which overlay was added to).
 | 
					        # back on the main chart (which overlay was added to).
 | 
				
			||||||
        self.view.enable_auto_yrange(src_vb=cv)
 | 
					        self.view.enable_auto_yrange(src_vb=cv)
 | 
				
			||||||
| 
						 | 
					@ -1172,6 +1184,7 @@ class ChartPlotWidget(pg.PlotWidget):
 | 
				
			||||||
            # register curve graphics with this viz
 | 
					            # register curve graphics with this viz
 | 
				
			||||||
            graphics=graphics,
 | 
					            graphics=graphics,
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					        pi.viz = viz
 | 
				
			||||||
        assert isinstance(viz.shm, ShmArray)
 | 
					        assert isinstance(viz.shm, ShmArray)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # TODO: this probably needs its own method?
 | 
					        # TODO: this probably needs its own method?
 | 
				
			||||||
| 
						 | 
					@ -1318,7 +1331,7 @@ class ChartPlotWidget(pg.PlotWidget):
 | 
				
			||||||
                self.default_view(do_ds=False)
 | 
					                self.default_view(do_ds=False)
 | 
				
			||||||
                self._on_screen = True
 | 
					                self._on_screen = True
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            x_range, mxmn = res
 | 
					            x_range, read_slc, mxmn = res
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return mxmn
 | 
					        return mxmn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue