diff --git a/demos/getting_started_3.py b/demos/getting_started_3.py
index 243ef8fdce08af82d7ca474b8b42b3f18203e4af..e613a4803129c000a7ee418e531cc9a54bd5b9c1 100644
--- a/demos/getting_started_3.py
+++ b/demos/getting_started_3.py
@@ -41,11 +41,12 @@ if __name__ == '__main__':
     power_space = A.target[0]
     power_distributor = ift.PowerDistributor(harmonic_space, power_space)
     dummy = ift.Field.from_random('normal', harmonic_space)
-    domain = ift.MultiDomain.union(
-        (A.domain, ift.MultiDomain.make({'xi': harmonic_space})))
+    domain = ift.MultiDomain.union((A.domain,
+                                    ift.MultiDomain.make({
+                                        'xi': harmonic_space
+                                    })))
 
-    correlated_field = ht(
-        power_distributor(A)*ift.FieldAdapter(domain, "xi"))
+    correlated_field = ht(power_distributor(A)*ift.FieldAdapter(domain, "xi"))
     # alternatively to the block above one can do:
     # correlated_field = ift.CorrelatedField(position_space, A)
 
@@ -54,8 +55,7 @@ if __name__ == '__main__':
 
     # Building the Line of Sight response
     LOS_starts, LOS_ends = get_random_LOS(100)
-    R = ift.LOSResponse(position_space, starts=LOS_starts,
-                        ends=LOS_ends)
+    R = ift.LOSResponse(position_space, starts=LOS_starts, ends=LOS_ends)
     # build signal response model and model likelihood
     signal_response = R(signal)
     # specify noise
@@ -68,8 +68,7 @@ if __name__ == '__main__':
     data = signal_response(MOCK_POSITION) + N.draw_sample()
 
     # set up model likelihood
-    likelihood = ift.GaussianEnergy(
-        mean=data, covariance=N)(signal_response)
+    likelihood = ift.GaussianEnergy(mean=data, covariance=N)(signal_response)
 
     # set up minimization and inversion schemes
     ic_sampling = ift.GradientNormController(iteration_limit=100)
@@ -84,17 +83,18 @@ if __name__ == '__main__':
     position = INITIAL_POSITION
 
     plot = ift.Plot()
-    plot.add(signal(MOCK_POSITION), title='ground truth')
-    plot.add(R.adjoint_times(data), title='data')
-    plot.add([A(MOCK_POSITION)], title='power')
-    plot.output(nx=3, xsize=16, ysize=5, title="setup", name="setup.png")
+    plot.add(signal(MOCK_POSITION), title='Ground Truth')
+    plot.add(R.adjoint_times(data), title='Data')
+    plot.add([A(MOCK_POSITION)], title='Power Spectrum')
+    plot.output(ny=1, nx=3, xsize=24, ysize=6, name="setup.png")
 
     # number of samples used to estimate the KL
     N_samples = 20
     for i in range(2):
         metric = H(ift.Linearization.make_var(position)).metric
-        samples = [metric.draw_sample(from_inverse=True)
-                   for _ in range(N_samples)]
+        samples = [
+            metric.draw_sample(from_inverse=True) for _ in range(N_samples)
+        ]
 
         KL = ift.SampledKullbachLeiblerDivergence(H, samples)
         KL = ift.EnergyAdapter(position, KL)
@@ -104,15 +104,17 @@ if __name__ == '__main__':
         plot = ift.Plot()
         plot.add(signal(position), title="reconstruction")
         plot.add([A(position), A(MOCK_POSITION)], title="power")
-        plot.output(nx=2, xsize=12, ysize=6, title="loop", name="loop.png")
+        plot.output(ny=1, ysize=6, xsize=16, name="loop.png")
 
     plot = ift.Plot()
     sc = ift.StatCalculator()
     for sample in samples:
         sc.add(signal(sample+position))
-    plot.add(sc.mean, title="mean")
-    plot.add(ift.sqrt(sc.var), title="std deviation")
+    plot.add(sc.mean, title="Posterior Mean")
+    plot.add(ift.sqrt(sc.var), title="Posterior Standard Deviation")
 
     powers = [A(s+position) for s in samples]
-    plot.add([A(position), A(MOCK_POSITION)]+powers, title="power")
-    plot.output(nx=3, xsize=16, ysize=5, title="results", name="results.png")
+    plot.add(
+        [A(position), A(MOCK_POSITION)]+powers,
+        title="Sampled Posterior Power Spectrum")
+    plot.output(ny=1, nx=3, xsize=24, ysize=6, name="results.png")