import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

fw = 10
nd, ncd = 31, 13
xd, xcd = np.arange(nd), np.arange(ncd)

spectrum = np.zeros((ncd, nd))
spectrum[:,:] = norm(6.0, 1.5).pdf(xcd)[:, None]

plt.rc('font', size=13)
fig, ax = plt.subplots(figsize=(fw, fw*(ncd/nd)), constrained_layout=True)
ax.imshow(spectrum, origin='lower')
ax.plot((0, nd-1), (6, 6), c='k')
ax.set_xticks(xd+0.5, minor=True)
ax.set_yticks(xcd+0.5, minor=True)
ax.grid(alpha=0.25, lw=1, which='minor')
plt.setp(ax, xlabel='Dispersion axis', ylabel='Cross-dispersion axis')
fig.show()