Note
Click here to download the full example code
Introduction to Summaries¶
When you have a few chains and want to contrast them all with each other, you probably want a summary plot.
To show you how they work, let's make some sample data that all has the same average.
from chainconsumer import Chain, ChainConfig, ChainConsumer, PlotConfig, Truth, make_sample
# Here's what you might start with
df_1 = make_sample(num_dimensions=4, seed=1)
df_2 = make_sample(num_dimensions=5, seed=2)
print(df_1.head())
Out:
A B C D log_posterior
0 -0.764220 5.652944 10.800358 14.317658 -2.270615
1 1.078901 3.532655 9.384678 15.592320 -3.260915
2 0.464173 5.027344 9.469494 14.884077 -4.163839
3 0.556626 5.474327 9.866842 15.578010 -3.325966
4 0.184044 4.125798 9.711121 15.121796 -2.449671
Using distributions¶
# And now we give this to chainconsumer
c = ChainConsumer()
c.add_chain(Chain(samples=df_1, name="An Example Contour"))
c.add_chain(Chain(samples=df_2, name="A Different Contour"))
fig = c.plotter.plot_summary()

Using Errorbars¶
Note that because the errorbar kwarg is specific to this function
it is not part of the PlotConfig class.

The other features of ChainConsumer should work with summaries too.
For example, truth values should work just fine.
c.add_truth(Truth(location={"A": 0, "B": 1}, line_style=":", color="red"))
fig = c.plotter.plot_summary(errorbar=True, vertical_spacing_ratio=2.0)

And similarly, our overrides are generic and so effect this method too.
c.set_override(ChainConfig(bar_shade=False))
c.set_plot_config(PlotConfig(watermark="Preliminary", blind=["E"]))
fig = c.plotter.plot_summary()

Total running time of the script: ( 0 minutes 3.844 seconds)
Download Python source code: plot_1_summary.py