import seaborn as sns
sns.set()

t0 = cosmo.age(0)
time_window = np.linspace(0, t0, 100)[1:-1]
z = [z_at_value(cosmo.age, t) for t in time_window]

H = cosmo.H(z)

# critical energy density of universe (all components)
ced = ((3 * c**2) / (8 * np.pi * G)) * H**2

# Plotting Omega (density parameter)
fig, ax = plt.subplots()
ax.scatter(time_window, cosmo.Om(z), s=1, c='b', label='Matter')
ax.scatter(time_window, cosmo.Odm(z), s=1, c='k', label='Dark Matter')
ax.scatter(time_window, cosmo.Ode(z), s=1, c='brown', label='Dark Energy')
plt.xlabel('Time (age of universe in Gyr)')
plt.ylabel('Density Parameter (Omega)')
ax.legend()
plt.show()

# Plotting energy density (ignoring the first 3 Gyrs from Big Bang)
matter = (cosmo.Om(z) * ced).to('MeV / m3')
dark_matter = (cosmo.Odm(z) * ced).to('MeV / m3')
dark_energy = (cosmo.Ode(z) * ced).to('MeV / m3')

fig, ax = plt.subplots()
ax.scatter(time_window[20:], matter[20:], s=1, c='b', label='Matter')
ax.scatter(time_window[20:], dark_matter[20:], s=1, c='k', label='Dark Matter')
ax.scatter(time_window[20:], dark_energy[20:], s=1, c='brown', label='Dark Energy')