python-qinfer icon indicating copy to clipboard operation
python-qinfer copied to clipboard

Plotting Upgrade

Open ihincks opened this issue 7 years ago • 1 comments

It might be worthwhile looking into doing our plots through seaborn...they have some nice stuff.

See this for example, which is only four lines of code.

ihincks avatar Aug 01 '17 12:08 ihincks

The seaborn library works most conveniently when the data is presented using pandas data types, like DataFrame. Perhaps a modest first step would just be to add a dataframe method to ParticleDistribution, or perhaps to SMCUpdater (which has access to modelparam_names). Something along the lines of (untested):

@property
def dataframe(self):
    # we want uniform particle weights
    dist = self if self.just_resampled else self.resampler(self)
    return pandas.DataFrame(data={
        name: dist.particle_locations[:,idx] 
        for idx, name in enumerate(self.model.modelparam_names)
    })

We don't have to make pandas a dependency if we don't want to.

EDIT: KDEs can be expensive, so maybe it should be a method with some sort of slice option.

ihincks avatar Aug 18 '17 20:08 ihincks