37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
|
|
# normal distribution:
|
|
x = np.arange( -3.0, 5.0, 0.01 )
|
|
g = np.exp(-0.5*x*x)/np.sqrt(2.0*np.pi)
|
|
x1=0.0
|
|
x2=1.0
|
|
|
|
plt.xkcd()
|
|
fig = plt.figure( figsize=(6,4) )
|
|
ax = fig.add_subplot( 1, 1, 1 )
|
|
ax.spines['right'].set_visible(False)
|
|
ax.spines['top'].set_visible(False)
|
|
ax.yaxis.set_ticks_position('left')
|
|
ax.xaxis.set_ticks_position('bottom')
|
|
ax.set_xlabel( 'x' )
|
|
ax.set_ylabel( 'Probability density p(x)' )
|
|
ax.set_ylim( 0.0, 0.46 )
|
|
ax.set_yticks( np.arange( 0.0, 0.45, 0.1 ) )
|
|
ax.annotate('Gaussian',
|
|
xy=(-1.0, 0.28), xycoords='data',
|
|
xytext=(-2.5, 0.35), textcoords='data', ha='left',
|
|
arrowprops=dict(arrowstyle="->", relpos=(0.5,0.0),
|
|
connectionstyle="angle3,angleA=10,angleB=110") )
|
|
ax.annotate('$P(0<x<1) = \int_0^1 p(x) \, dx$',
|
|
xy=(0.6, 0.28), xycoords='data',
|
|
xytext=(1.2, 0.4), textcoords='data', ha='left',
|
|
arrowprops=dict(arrowstyle="->", relpos=(0.0,0.5),
|
|
connectionstyle="angle3,angleA=10,angleB=80") )
|
|
ax.fill_between( x[(x>x1)&(x<x2)], 0.0, g[(x>x1)&(x<x2)], color='#cc0000' )
|
|
ax.plot(x,g, 'b', lw=4)
|
|
plt.tight_layout()
|
|
fig.savefig( 'pdfprobabilities.pdf' )
|
|
plt.show()
|
|
|