"""Write diffraction-phase-ambiguity.png in cwd; Python 3.14, NumPy 2.3, Matplotlib 3.10.""" import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 500) rho_plus = 3 + np.cos(x) + .5*np.cos(2*x) rho_minus = 3 + np.cos(x) - .5*np.cos(2*x) modes = np.array([-2, -1, 0, 1, 2]) f_plus = np.array([.25, .5, 3, .5, .25]) f_minus = np.array([-.25, .5, 3, .5, -.25]) assert np.array_equal(abs(f_plus)**2, abs(f_minus)**2) assert min(rho_plus.min(), rho_minus.min()) >= 1.5 fig, (a, b) = plt.subplots(1, 2, figsize=(7.4, 2.9), dpi=100, facecolor='white') a.plot(x, rho_plus, color='#176ca3', label=r'$3+\cos x+\frac{1}{2}\cos 2x$', linewidth=2) a.plot(x, rho_minus, color='#bc5d13', label=r'$3+\cos x-\frac{1}{2}\cos 2x$', linewidth=2) a.set(title='Different positive densities', xlabel='Periodic coordinate x', ylabel='Density (arbitrary units)', ylim=(1.2, 5.6), xticks=[0, np.pi, 2*np.pi], xticklabels=['0', r'$\pi$', r'$2\pi$']) a.legend(frameon=False, ncol=1, loc='upper center', fontsize=9) a.grid(alpha=.2) b.bar(modes, abs(f_plus)**2, width=.5, color='#606a78') b.set(title='Same squared Fourier magnitudes', xlabel='Fourier mode k', ylabel=r'$|F_k|^2$', xticks=modes, ylim=(0, 10.5)) for k, val in zip(modes, abs(f_plus)**2): b.text(k, val+.08, f'{val:g}', ha='center', fontsize=10) b.grid(axis='y', alpha=.2) fig.text(.5, .015, 'Original one-dimensional example; not a measured protein diffraction pattern.', ha='center', fontsize=9) fig.subplots_adjust(left=.08, right=.98, bottom=.23, top=.84, wspace=.35) fig.savefig('diffraction-phase-ambiguity.png', facecolor='white') plt.close(fig)