"""Generate gaussian-aperture-capture.png in the working directory. Tested with Python 3.14.4, NumPy and Matplotlib 3.10.7. Run from _media; dependencies are recorded in the repository pyproject.toml. """ import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np radius=np.linspace(0,2,501) profile=np.exp(-2*radius**2) fig,axes=plt.subplots(1,2,figsize=(7,3.2),dpi=100,layout='constrained') for ax,values,title,label in [ (axes[0],profile,'Local exposure',r'$H(r)/H(0)$'), (axes[1],1-profile,'Energy inside a centred disk',r'$Q(R)/U$'), ]: ax.plot(radius,values,color='#2166ac',linewidth=2) ax.axvline(.5,color='#b35806',linestyle='--',linewidth=1) ax.set(xlim=(0,2),ylim=(0,1.03),xlabel='Radius / beam radius',ylabel=label,title=title) ax.set_xticks([0,.5,1,1.5,2]) ax.grid(alpha=.2) axes[0].scatter([.5],[np.exp(-.5)],color='#b35806',zorder=3) axes[0].annotate('60.7% of peak',(.5,np.exp(-.5)),xytext=(.76,.75),arrowprops={'arrowstyle':'-','color':'#b35806'},fontsize=9) axes[1].scatter([.5],[1-np.exp(-.5)],color='#b35806',zorder=3) axes[1].annotate('39.3% captured',(.5,1-np.exp(-.5)),xytext=(.75,.19),arrowprops={'arrowstyle':'-','color':'#b35806'},fontsize=9) fig.savefig('gaussian-aperture-capture.png',facecolor='white',dpi=100) plt.close(fig)