Make `.default_view()` time step aware
When we use an epoch index and any sample rate > 1s we need to scale the "number of bars" to that step in order to place the view correctly in x-domain terms. For now we're calcing the step in-method but likely, longer run, we'll pull this from elsewhere (like a ``Viz`` attr).epoch_indexing_and_dataviz_layer
parent
0bdb7261d1
commit
bb84715bf0
|
@ -1026,20 +1026,13 @@ class ChartPlotWidget(pg.PlotWidget):
|
||||||
index_field = viz.index_field
|
index_field = viz.index_field
|
||||||
|
|
||||||
if index_field == 'time':
|
if index_field == 'time':
|
||||||
vr = viz.plot.viewRect()
|
|
||||||
vtl, vtr = vr.left(), vr.right()
|
|
||||||
|
|
||||||
if vtl < datum_start:
|
|
||||||
vtl = datum_start
|
|
||||||
vtr = datum_stop
|
|
||||||
|
|
||||||
(
|
(
|
||||||
abs_slc,
|
abs_slc,
|
||||||
read_slc,
|
read_slc,
|
||||||
) = slice_from_time(
|
) = slice_from_time(
|
||||||
array,
|
array,
|
||||||
start_t=vtl,
|
start_t=l,
|
||||||
stop_t=vtr,
|
stop_t=r,
|
||||||
)
|
)
|
||||||
iv_arr = array[read_slc]
|
iv_arr = array[read_slc]
|
||||||
index = iv_arr['time']
|
index = iv_arr['time']
|
||||||
|
@ -1049,16 +1042,20 @@ class ChartPlotWidget(pg.PlotWidget):
|
||||||
|
|
||||||
# these must be array-index-ints (hence the slice from time
|
# these must be array-index-ints (hence the slice from time
|
||||||
# above).
|
# above).
|
||||||
x_start, x_stop = index[0], index[-1]
|
x_stop = index[-1]
|
||||||
view: ChartView = viz.plot.vb
|
view: ChartView = viz.plot.vb
|
||||||
|
|
||||||
|
times = viz.shm.array['time']
|
||||||
|
step = times[-1] - times[-2]
|
||||||
|
|
||||||
if (
|
if (
|
||||||
datum_stop < 0
|
datum_stop < 0
|
||||||
or l < x_start
|
or r < datum_start
|
||||||
|
or l > datum_stop
|
||||||
or l < 0
|
or l < 0
|
||||||
or (datum_stop - datum_start) < 6
|
or (datum_stop - datum_start) < 6
|
||||||
):
|
):
|
||||||
begin = x_stop - bars_from_y
|
begin = x_stop - (bars_from_y * step)
|
||||||
view.setXRange(
|
view.setXRange(
|
||||||
min=begin,
|
min=begin,
|
||||||
max=x_stop,
|
max=x_stop,
|
||||||
|
@ -1067,6 +1064,12 @@ class ChartPlotWidget(pg.PlotWidget):
|
||||||
# re-get range
|
# re-get range
|
||||||
l, datum_start, datum_stop, r = viz.bars_range()
|
l, datum_start, datum_stop, r = viz.bars_range()
|
||||||
|
|
||||||
|
# print(
|
||||||
|
# f'l: {l}\n'
|
||||||
|
# f'datum_start: {datum_start}\n'
|
||||||
|
# f'datum_stop: {datum_stop}\n\n'
|
||||||
|
# f'r: {r}\n'
|
||||||
|
# )
|
||||||
# we get the L1 spread label "length" in view coords
|
# we get the L1 spread label "length" in view coords
|
||||||
# terms now that we've scaled either by user control
|
# terms now that we've scaled either by user control
|
||||||
# or to the default set of bars as per the immediate block
|
# or to the default set of bars as per the immediate block
|
||||||
|
@ -1085,15 +1088,15 @@ class ChartPlotWidget(pg.PlotWidget):
|
||||||
)
|
)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
end = x_stop + y_offset + 1
|
end = x_stop + (y_offset * step) + 1
|
||||||
|
|
||||||
begin = end - (r - l)
|
begin = end - (r - l)
|
||||||
|
|
||||||
debug_msg += (
|
debug_msg += (
|
||||||
f'end: {end}\n'
|
|
||||||
f'begin: {begin}\n'
|
f'begin: {begin}\n'
|
||||||
|
f'end: {end}\n'
|
||||||
)
|
)
|
||||||
print(debug_msg)
|
# print(debug_msg)
|
||||||
|
|
||||||
# remove any custom user yrange setttings
|
# remove any custom user yrange setttings
|
||||||
if self._static_yrange == 'axis':
|
if self._static_yrange == 'axis':
|
||||||
|
|
Loading…
Reference in New Issue