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