In [2]:
import numpy as np
import matplotlib as mpl
import matplotlib.pylab as plt
import seaborn as sns
sns.set()
sns.set_context('poster')
sns.set_style('ticks')
%matplotlib inline

In [47]:
def gauss_state(x,x0,sigma):
    return np.power((2*np.pi*sigma**2),-1/4)*np.exp(-1*np.power(x-x0,2)/(4*sigma**2))
neigen = 9
f = plt.figure(figsize= (12,8))
probs = np.random.random_sample(neigen)
probs = probs/sum(probs)
x = range(-int(neigen/2.),int(neigen/2.+1))
current_palette = sns.color_palette()
for pt in zip(x,probs):
    plt.plot( [pt[0],pt[0]], [0,pt[1]] , color =current_palette[0])
#xgauss = np.linspace(x[0]-5*0.05,x[-1]+5*0.05,1000)
#gauss_total = 0

for i in x:
    gauss_total+=probs[i]*np.power(gauss_state(xgauss,x[i],0.05),2)
#plt.plot(xgauss,gauss_total)
    
labels = []
for num in np.asarray(x)+int(neigen/2.):
    labels.append(r"$\epsilon a_{x}$".format(x=num))
plt.xticks(x, labels, rotation='vertical')
sns.despine()
plt.ylabel(r"$P(x_d)$")
plt.xlabel(r"$x_d$")
plt.title("Probability distribution for the meter")
plt.savefig("ideal_dist_meter.png",dpi=f.dpi)



In [48]:
def gauss_state(x,x0,sigma):
    return np.power((2*np.pi*sigma**2),-1/4)*np.exp(-1*np.power(x-x0,2)/(4*sigma**2))
neigen = 9
f = plt.figure(figsize= (12,8))
x = range(-int(neigen/2.),int(neigen/2.+1))
current_palette = sns.color_palette()
#for pt in zip(x,probs):
#    plt.plot( [pt[0],pt[0]], [0,pt[1]] , color =current_palette[0])
sigma = 0.12
xgauss = np.linspace(x[0]-5*sigma,x[-1]+5*sigma,1000)
gauss_total = 0

for i in x:
    gauss_total+=probs[i]*np.power(gauss_state(xgauss,x[i],sigma),2)
plt.plot(xgauss,gauss_total)
    
labels = []
for num in np.asarray(x)+int(neigen/2.):
    labels.append(r"$\epsilon a_{x}$".format(x=num))
plt.xticks(x, labels, rotation='vertical')
sns.despine()
plt.ylabel(r"$P(x_d)$")
plt.title("Probability distribution for the meter - Strong Regime")
plt.savefig("dist_meter_strong.png",dpi=f.dpi)



In [72]:
def gauss_state(x,x0,sigma):
    return np.power((2*np.pi*sigma**2),-1/4)*np.exp(-1*np.power(x-x0,2)/(4*sigma**2))
neigen = 2
f = plt.figure(figsize= (12,8))
probs = np.random.random_sample(neigen)
probs = probs/sum(probs)
x = range(-int(neigen/2.),int(neigen/2.))
current_palette = sns.color_palette()
#for pt in zip(x,probs):
#    plt.plot( [pt[0],pt[0]], [0,pt[1]] , color =current_palette[0])
sigma = 0.4
xgauss = np.linspace(x[0]-5*sigma,x[-1]+5*sigma,1000)
gauss_total = 0

for i in x:
    current = probs[i]*np.power(gauss_state(xgauss,x[i],sigma),2)
    gauss_total+= current
    plt.fill(xgauss,current,alpha=0.8)
a = plt.plot(xgauss,gauss_total,alpha=0.1)
    
labels = []
for num in np.asarray(x)+int(neigen/2.):
    labels.append(r"$\epsilon a_{x}$".format(x=num))
plt.xticks(x, labels, rotation='vertical')
sns.despine()
plt.ylabel(r"$P(x_d)$")
plt.title("Probability distribution for the meter - Weak Regime")
plt.savefig("dist_meter_strong.png",dpi=f.dpi)



In [ ]: