Commit 628af44f authored by Niels-Oliver Walkowski's avatar Niels-Oliver Walkowski
Browse files

move vline to sequenceplot superclass

parent 6a55aae7
......@@ -73,6 +73,25 @@ class SequencePlot(object):
return (ax, axt)
# TODO Überführbar in Superclass?
# evtl. auch eher feature drer View Klasse
# TODO self._x sollte eine array sein
def _vlines(self, view, mark, mark_gt, mark_lt):
npx = np..array(self._x)
if mark_gt:
poss = npx[view > mark_gt]
for pos in poss:
self._ax.axvline(pos, color='#a6e22e', alpha=0.4, linewidth=3)
if mark_lt:
poss = npx[view < mark_lt]
for pos in poss:
self._ax.axvline(pos, color='#f92672', alpha=0.4, linewidth=3)
if mark:
for pos in mark:
print(self._ax)
self._ax.axvline(pos, color='#66d9ef', alpha=0.4, linewidth=3)
def saveplt(self, title=False, fname='plot.png'):
if title:
self._ax.set_title(title, {'fontsize': 14}, y=1.18)
......@@ -90,7 +109,7 @@ class MultivariatePlot(SequencePlot):
self.fig = plt.figure()
self._ax = plt.axes()
def plot(self, view):
def plot(self, view, mark_gt=False, mark_lt=False, mark=False):
x = view[:, 0]
y = view[:, 1]
value = view[:, 2]
......@@ -103,6 +122,9 @@ class MultivariatePlot(SequencePlot):
# axt.scatter(x, y, c=y, cmap='Greys_r', s=thickness, linewidths=0) # DOC: vmin/vmax sorgt für die Verteilung der Fraben der Colorm
# ax.scatter(x, y, c=y, cmap='hsv', s=thickness, linewidths=0)
if mark:
self._vlines(view, mark, False, False)
self.fig.tight_layout()
self.fig.set_size_inches(self.width, self.height)
......@@ -124,21 +146,8 @@ class UnivariatePlot(SequencePlot):
# contrast_points = savitzky_golay(np.array(contrast_points), 51, 7)
self._axt.plot(self._x, view, label=view.feature)
# TODO Überführbar in Superclass?
# evtl. auch eher feature drer View Klasse
# TODO self._x sollte eine array sein
npx = np.array(self._x)
if mark_gt:
poss = npx[view > mark_gt]
for pos in poss:
self._ax.axvline(pos, color='#a6e22e', alpha=0.3, linewidth=3)
if mark_lt:
poss = npx[view < mark_lt]
for pos in poss:
self._ax.axvline(pos, color='#f92672', alpha=0.3, linewidth=3)
if mark:
for pos in mark:
self._ax.axvline(pos, color='#66d9ef', alpha=0.3, linewidth=3)
if any([mark, mark_gt, mark_lt]):
self._vlines(view, mark, mark_gt, mark_lt)
self._axt.legend()
......
from itten.movie import Movie
from itten.views import MultivariateSequence
from itten.views import UnivariateSequence
from itten.visuals import MultivariatePlot
from itten.visuals import UnivariatePlot
movie = Movie(prefix='wwz_', folder='../DHd-2017/Data/Frames/WWZ/')
# movie._frames.start = 367
# movie._frames.end = 1000
cont = MultivariateSequence(movie._frames,)
cont.populate(frm_stp=1, ctrst='saturation')
# cont = UnivariateSequence(movie._frames,)
cont.populate(frm_stp=3, ctrst='light_dark')
viz = MultivariatePlot(cont)
viz.plot(cont, mark=[243, 1885, 3430, 4237, 4543])
# cont.seqper(frm_stp=5, ctrst='saturation', perc=50)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment