Python matplotlib - contour plot - confidence intervals

I am trying to build outlines (executable) on a data grid using matplotlib.pyplot.contour, but with outlines located at a distance of 1, 2 and 3 sigma from the peak value. Is there a neat way to do this separately from brute force? Thanks!

Python version

Python 2.7.2 | EPD 7.2-2 (64-bit) | (default, September 7, 2011, 16:31:15) [GCC 4.0.1 (Apple Inc., build 5493)] on darwin

+6
source share
1 answer

You can specify the z-values list where the contours are drawn. So all you have to do is collect the correct z-values for your distribution. Here is an example for "1, 2, and 3 sigma from peak value":

enter image description here

the code:

 import numpy as np import matplotlib.cm as cm import matplotlib.mlab as mlab import matplotlib.pyplot as plt #Set up the 2D Gaussian: delta = 0.025 x = np.arange(-3.0, 3.0, delta) y = np.arange(-3.0, 3.0, delta) X, Y = np.meshgrid(x, y) sigma = 1.0 Z = mlab.bivariate_normal(X, Y, sigma, sigma, 0.0, 0.0) #Get Z values for contours 1, 2, and 3 sigma away from peak: z1 = mlab.bivariate_normal(0, 1 * sigma, sigma, sigma, 0.0, 0.0) z2 = mlab.bivariate_normal(0, 2 * sigma, sigma, sigma, 0.0, 0.0) z3 = mlab.bivariate_normal(0, 3 * sigma, sigma, sigma, 0.0, 0.0) plt.figure() #plot Gaussian: im = plt.imshow(Z, interpolation='bilinear', origin='lower', extent=(-50,50,-50,50),cmap=cm.gray) #Plot contours at whatever z values we want: CS = plt.contour(Z, [z1, z2, z3], origin='lower', extent=(-50,50,-50,50),colors='red') plt.savefig('fig.png') plt.show() 
+4
source

Source: https://habr.com/ru/post/917694/


All Articles