File wellmet/qt_gui/qt_graph_widgets.py changed (mode: 100644) (index 6621e3e..e93e160) |
... |
... |
import pandas as pd # required for estimation graph |
13 |
13 |
from .. import stm_df |
from .. import stm_df |
14 |
14 |
|
|
15 |
15 |
|
|
|
16 |
|
#č nastavovaní mezí není filosofií pyqtgraph |
|
17 |
|
#č v jejich examples byly použity pouze jednou - |
|
18 |
|
#č v ukázce možností ViewBox. |
|
19 |
|
#č Už vím proč - sice zoomovaní příjemnější, když graf nikam neutiká, |
|
20 |
|
#č ale až se naraží na limity, pg začně měnit proporce, |
|
21 |
|
#č které se už nezmění zpatky jen otačením kolečka myši. |
|
22 |
|
#č Navíc setLimits nešikovně lame autoRange |
|
23 |
|
def set_xlimits(plot_widget, xmin_lim, xmax_lim): |
|
24 |
|
#č není veřejná, není ale ani soukromá. vrací [x, y] |
|
25 |
|
x, y = plot_widget.getPlotItem().getViewBox().autoRangeEnabled() |
|
26 |
|
plot_widget.setLimits(xMin=xmin_lim, xMax=xmax_lim) |
|
27 |
|
if not x: |
|
28 |
|
[[xmin, __xmax], __y_range] = plot_widget.getPlotItem().viewRange() |
|
29 |
|
#č chcu aby x pokryval i čerstvě přidáná data |
|
30 |
|
plot_widget.setRange(xRange=(xmin, xmax_lim), padding=0) |
|
31 |
|
|
|
32 |
|
#č ten uvnitř volá i autoRange() na přislušných osech |
|
33 |
|
plot_widget.enableAutoRange(x=x, y=y) |
|
34 |
|
|
|
35 |
|
|
|
36 |
|
|
|
37 |
|
def update_xrange(plot_widget, xmax): |
|
38 |
|
#č není veřejná, není ale ani soukromá. vrací [x, y] |
|
39 |
|
x, y = plot_widget.getPlotItem().getViewBox().autoRangeEnabled() |
|
40 |
|
if not x: |
|
41 |
|
[[xmin, _xmax], __y_range] = plot_widget.getPlotItem().viewRange() |
|
42 |
|
#č chcu aby x pokryval i čerstvě přidáná data |
|
43 |
|
plot_widget.setRange(xRange=(xmin, max(_xmax, xmax)), padding=0) |
|
44 |
|
|
|
45 |
|
#č ten uvnitř volá i autoRange() na přislušných osech |
|
46 |
|
plot_widget.enableAutoRange(x=x, y=y) |
|
47 |
|
|
|
48 |
|
|
|
49 |
|
|
|
50 |
|
|
16 |
51 |
|
|
17 |
52 |
|
|
18 |
53 |
|
|
|
... |
... |
class GRaph(pg.PlotWidget): |
35 |
70 |
self.clear() |
self.clear() |
36 |
71 |
self.setBackground('w') |
self.setBackground('w') |
37 |
72 |
#č y limita v podstatě znemožní Log y graf |
#č y limita v podstatě znemožní Log y graf |
38 |
|
self.setLimits(xMin=-0.45)#, yMin=-0.45) |
|
39 |
73 |
#size=self.w.px_size*1.5 |
#size=self.w.px_size*1.5 |
40 |
74 |
pos = () #np.empty((nsim, 4)) |
pos = () #np.empty((nsim, 4)) |
41 |
75 |
size = self.stream.px_size * 2 |
size = self.stream.px_size * 2 |
|
... |
... |
class BoxEstimationData(QtCore.QObject): |
214 |
248 |
|
|
215 |
249 |
|
|
216 |
250 |
class ErrorGraph(pg.PlotWidget): |
class ErrorGraph(pg.PlotWidget): |
|
251 |
|
|
|
252 |
|
update_xrange = update_xrange |
|
253 |
|
|
217 |
254 |
def __init__(self, pf_exact, box_data, parent=None, *args, **kwargs): |
def __init__(self, pf_exact, box_data, parent=None, *args, **kwargs): |
218 |
255 |
super().__init__(parent, *args, **kwargs) |
super().__init__(parent, *args, **kwargs) |
219 |
256 |
|
|
|
... |
... |
class ErrorGraph(pg.PlotWidget): |
260 |
297 |
def setup(self, *args, **kwargs): |
def setup(self, *args, **kwargs): |
261 |
298 |
self.clear() |
self.clear() |
262 |
299 |
self.setBackground('w') |
self.setBackground('w') |
263 |
|
self.setLimits(xMin=-0.45) |
|
264 |
300 |
x = y = () # zde jen vytvoříme kostru, nakrmime daty v .redraw() |
x = y = () # zde jen vytvoříme kostru, nakrmime daty v .redraw() |
265 |
301 |
|
|
266 |
302 |
# We will use logMode by default |
# We will use logMode by default |
|
... |
... |
class ErrorGraph(pg.PlotWidget): |
288 |
324 |
wv = (df['weighted_vertex_estimation'] - self.pf_exact).abs() |
wv = (df['weighted_vertex_estimation'] - self.pf_exact).abs() |
289 |
325 |
self.pen_weighted_vertex.setData(wv.index.to_numpy(), wv.to_numpy()) |
self.pen_weighted_vertex.setData(wv.index.to_numpy(), wv.to_numpy()) |
290 |
326 |
|
|
291 |
|
|
|
292 |
|
|
|
293 |
|
|
|
|
327 |
|
xmax = df.index.max() |
|
328 |
|
self.update_xrange(xmax*1.02) |
294 |
329 |
|
|
295 |
330 |
|
|
296 |
331 |
|
|
297 |
332 |
|
|
298 |
333 |
|
|
299 |
334 |
class EstimationGraph(pg.PlotWidget): |
class EstimationGraph(pg.PlotWidget): |
|
335 |
|
|
|
336 |
|
update_xrange = update_xrange |
|
337 |
|
|
300 |
338 |
def __init__(self, pf_exact, box_data, parent=None, *args, **kwargs): |
def __init__(self, pf_exact, box_data, parent=None, *args, **kwargs): |
301 |
339 |
super().__init__(parent, *args, **kwargs) |
super().__init__(parent, *args, **kwargs) |
302 |
340 |
|
|
|
... |
... |
class EstimationGraph(pg.PlotWidget): |
362 |
400 |
def setup(self, *args, **kwargs): |
def setup(self, *args, **kwargs): |
363 |
401 |
self.clear() |
self.clear() |
364 |
402 |
self.setBackground('w') |
self.setBackground('w') |
365 |
|
self.setLimits(xMin=-0.45) |
|
|
403 |
|
|
366 |
404 |
x = y = () # zde jen vytvoříme kostru, nakrmime daty v .redraw() |
x = y = () # zde jen vytvoříme kostru, nakrmime daty v .redraw() |
367 |
405 |
|
|
368 |
406 |
#xkcd_green = (167, 255, 181) # xkcd:light seafoam green #a7ffb5 |
#xkcd_green = (167, 255, 181) # xkcd:light seafoam green #a7ffb5 |
|
... |
... |
class EstimationGraph(pg.PlotWidget): |
450 |
488 |
|
|
451 |
489 |
|
|
452 |
490 |
def redraw(self, df): |
def redraw(self, df): |
453 |
|
|
|
454 |
491 |
if len(df) < 2: #č nevím proč hazí chyby. Asi kvůli zadané širce. |
if len(df) < 2: #č nevím proč hazí chyby. Asi kvůli zadané širce. |
455 |
492 |
return |
return |
456 |
493 |
|
|
|
... |
... |
class EstimationGraph(pg.PlotWidget): |
466 |
503 |
|
|
467 |
504 |
self._set_data(self.pen_outside, df.outside) |
self._set_data(self.pen_outside, df.outside) |
468 |
505 |
self._set_data(self.pen_mixed, df.mix) |
self._set_data(self.pen_mixed, df.mix) |
|
506 |
|
|
|
507 |
|
|
|
508 |
|
xmax = df.index.max() |
|
509 |
|
self.update_xrange(xmax*1.02) |
469 |
510 |
|
|
470 |
|
|
|
471 |
|
|
|
472 |
|
|
|
473 |
|
|
|
474 |
|
|
|
475 |
|
|
|
|
511 |
|
|
476 |
512 |
|
|
477 |
513 |
|
|
478 |
514 |
# |
# |