Handle OHLC *and* signal indexing
parent
9a59f2408d
commit
fc0a03d597
|
@ -186,7 +186,10 @@ class XAxisLabel(AxisLabel):
|
||||||
data: float, # data for text
|
data: float, # data for text
|
||||||
offset: int = 0 # if have margins, k?
|
offset: int = 0 # if have margins, k?
|
||||||
) -> None:
|
) -> None:
|
||||||
self.label_str = self.parent._indexes_to_timestrs([int(data)])[0]
|
timestrs = self.parent._indexes_to_timestrs([int(data)])
|
||||||
|
if not timestrs.any():
|
||||||
|
return
|
||||||
|
self.label_str = timestrs[0]
|
||||||
width = self.boundingRect().width()
|
width = self.boundingRect().width()
|
||||||
new_pos = QPointF(abs_pos.x() - width / 2 - offset, 0)
|
new_pos = QPointF(abs_pos.x() - width / 2 - offset, 0)
|
||||||
self.setPos(new_pos)
|
self.setPos(new_pos)
|
||||||
|
@ -241,8 +244,20 @@ class YSticky(YAxisLabel):
|
||||||
chart.sigRangeChanged.connect(self.update_on_resize)
|
chart.sigRangeChanged.connect(self.update_on_resize)
|
||||||
|
|
||||||
def update_on_resize(self, vr, r):
|
def update_on_resize(self, vr, r):
|
||||||
# TODO: figure out how to generalize across data schema
|
# TODO: add an `.index` to the array data-buffer layer
|
||||||
self.update_from_data(*self._chart._array[-1][['index', 'close']])
|
# and make this way less shitty...
|
||||||
|
a = self._chart._array
|
||||||
|
fields = a.dtype.fields
|
||||||
|
if fields and 'index' in fields:
|
||||||
|
index, last = a[-1][['index', 'close']]
|
||||||
|
else:
|
||||||
|
# non-ohlc case
|
||||||
|
index = len(a) - 1
|
||||||
|
last = a[-1]
|
||||||
|
self.update_from_data(
|
||||||
|
index,
|
||||||
|
last,
|
||||||
|
)
|
||||||
|
|
||||||
def update_from_data(
|
def update_from_data(
|
||||||
self,
|
self,
|
||||||
|
|
Loading…
Reference in New Issue