From 3b033932e3e1eaf68ba20f7e2938b6dcd3fc8b51 Mon Sep 17 00:00:00 2001 From: Dan Stowell <danstowell@users.sourceforge.net> Date: Fri, 19 Aug 2016 17:39:07 +0100 Subject: [PATCH] when plotting high-dimensional Gaussians, use first two dims. Fixes #66 This matches up with how high-dimensional data is plotted. --- pyhsmm/models.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pyhsmm/models.py b/pyhsmm/models.py index d42be7f..3a19ef4 100644 --- a/pyhsmm/models.py +++ b/pyhsmm/models.py @@ -20,6 +20,7 @@ from pyhsmm.internals import hmm_states, hsmm_states, hsmm_inb_states, \ from pyhsmm.util.general import list_split from pyhsmm.util.profiling import line_profiled from pybasicbayes.util.stats import atleast_2d +from pybasicbayes.distributions.gaussian import Gaussian ################ @@ -330,6 +331,11 @@ class _HMMBase(Model): artists = [] for state, (o, w) in enumerate(zip(self.obs_distns,usages)): + if o.D > 2: + if isinstance(o, Gaussian): + o = Gaussian(o.mu[:2], o.sigma[:2, :2]) + else: + warn("High-dimensional distribution may not plot correctly in 2D") artists.extend( o.plot( color=state_colors[state], label='%d' % state, -- GitLab