How to plot confidence interval in Python? How to plot confidence interval in Python? python python

How to plot confidence interval in Python?


There are several ways to accomplish what you asking for:

Using only matplotlib

from matplotlib import pyplot as pltimport numpy as np#some example datax= np.linspace(0.1, 9.9, 20)y = 3.0 * x#some confidence intervalci = 1.96 * np.std(y)/np.mean(y)fig, ax = plt.subplots()ax.plot(x,y)ax.fill_between(x, (y-ci), (y+ci), color='b', alpha=.1)

fill_between does what you are looking for. For more information on how to use this function, see: https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.fill_between.html

Output

enter image description here

Alternatively, go for seaborn, which supports this using lineplot or regplot,see: https://seaborn.pydata.org/generated/seaborn.lineplot.html


Let's assume that we have three categories and lower and upper bounds of confidence intervals of a certain estimator across these three categories:

data_dict = {}data_dict['category'] = ['category 1','category 2','category 3']data_dict['lower'] = [0.1,0.2,0.15]data_dict['upper'] = [0.22,0.3,0.21]dataset = pd.DataFrame(data_dict)

You can plot the confidence interval for each of these categories using the following code:

for lower,upper,y in zip(dataset['lower'],dataset['upper'],range(len(dataset))):    plt.plot((lower,upper),(y,y),'ro-',color='orange')plt.yticks(range(len(dataset)),list(dataset['category']))

Resulting with the following graph:

Confidence intervals of an estimator across some three categories