From 9930f25ad30e4f03bd6a0f9d750132cfd7448db2 Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Sat, 21 Jan 2023 18:39:41 -0500 Subject: [PATCH] Move axis hiding into `.overlay_plotitem()` Since we pretty much always want the 'bottom' and any side that is not declared by the caller move the axis hides into this method. Lets us drop the same calls in `.ui._fsp` and `._display`. This also disables the auto-ranging back-linking for now since it doesn't seem to be working quite yet? --- piker/ui/_chart.py | 43 +++++++++++++++++++++++++++---------------- piker/ui/_display.py | 10 ---------- piker/ui/_fsp.py | 9 +++------ 3 files changed, 30 insertions(+), 32 deletions(-) diff --git a/piker/ui/_chart.py b/piker/ui/_chart.py index 88ac871b..96187bf2 100644 --- a/piker/ui/_chart.py +++ b/piker/ui/_chart.py @@ -634,6 +634,7 @@ class LinkedSplits(QWidget): axis.pi = cpw.plotItem cpw.hideAxis('left') + # cpw.removeAxis('left') cpw.hideAxis('bottom') if ( @@ -750,12 +751,12 @@ class LinkedSplits(QWidget): # NOTE: back-link the new sub-chart to trigger y-autoranging in # the (ohlc parent) main chart for this linked set. - if self.chart: - main_viz = self.chart.get_viz(self.chart.name) - self.chart.view.enable_auto_yrange( - src_vb=cpw.view, - viz=main_viz, - ) + # if self.chart: + # main_viz = self.chart.get_viz(self.chart.name) + # self.chart.view.enable_auto_yrange( + # src_vb=cpw.view, + # viz=main_viz, + # ) graphics = viz.graphics data_key = viz.name @@ -1106,6 +1107,12 @@ class ChartPlotWidget(pg.PlotWidget): pi.chart_widget = self pi.hideButtons() + # hide all axes not named by ``axis_side`` + for axname in ( + ({'bottom'} | allowed_sides) - {axis_side} + ): + pi.hideAxis(axname) + # compose this new plot's graphics with the current chart's # existing one but with separate axes as neede and specified. self.pi_overlay.add_plotitem( @@ -1209,17 +1216,21 @@ class ChartPlotWidget(pg.PlotWidget): pi = overlay if add_sticky: - axis = pi.getAxis(add_sticky) - if pi.name not in axis._stickies: - if pi is not self.plotItem: - overlay = self.pi_overlay - assert pi in overlay.overlays - overlay_axis = overlay.get_axis( - pi, - add_sticky, - ) - assert overlay_axis is axis + if pi is not self.plotItem: + # overlay = self.pi_overlay + # assert pi in overlay.overlays + overlay = self.pi_overlay + assert pi in overlay.overlays + axis = overlay.get_axis( + pi, + add_sticky, + ) + + else: + axis = pi.getAxis(add_sticky) + + if pi.name not in axis._stickies: # TODO: UGH! just make this not here! we should # be making the sticky from code which has access diff --git a/piker/ui/_display.py b/piker/ui/_display.py index 72b0d76d..fde3124e 100644 --- a/piker/ui/_display.py +++ b/piker/ui/_display.py @@ -1320,13 +1320,6 @@ async def display_symbol_data( name=fqsn, axis_title=fqsn, ) - # only show a singleton bottom-bottom axis by default. - hist_pi.hideAxis('bottom') - - # XXX: TODO: THIS WILL CAUSE A GAP ON OVERLAYS, - # i think it needs to be "removed" instead when there - # are none? - hist_pi.hideAxis('left') hist_viz = hist_chart.draw_curve( fqsn, @@ -1362,9 +1355,6 @@ async def display_symbol_data( axis_title=fqsn, ) - rt_pi.hideAxis('left') - rt_pi.hideAxis('bottom') - rt_viz = rt_chart.draw_curve( fqsn, ohlcv, diff --git a/piker/ui/_fsp.py b/piker/ui/_fsp.py index 9f1eec65..6da93b71 100644 --- a/piker/ui/_fsp.py +++ b/piker/ui/_fsp.py @@ -691,7 +691,7 @@ async def open_vlm_displays( # the axis on the left it's totally not lined up... # show volume units value on LHS (for dinkus) # vlm_chart.hideAxis('right') - # vlm_chart.showAxis('left') + vlm_chart.hideAxis('left') # send back new chart to caller task_status.started(vlm_chart) @@ -759,10 +759,6 @@ async def open_vlm_displays( }, ) - # TODO: should this maybe be implicit based on input args to - # `.overlay_plotitem()` above? - dvlm_pi.hideAxis('bottom') - # all to be overlayed curve names dvlm_fields = [ 'dolla_vlm', @@ -845,6 +841,8 @@ async def open_vlm_displays( # liquidity events (well at least on low OHLC periods - 1s). vlm_curve.hide() vlm_chart.removeItem(vlm_curve) + # vlm_chart.plotItem.layout.setMinimumWidth(0) + # vlm_chart.removeAxis('left') vlm_viz = vlm_chart._vizs['volume'] vlm_viz.render = False @@ -872,7 +870,6 @@ async def open_vlm_displays( }, ) - tr_pi.hideAxis('bottom') await started.wait() chart_curves(