import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as st
import arviz as az
plt.style.use('arviz-darkgrid')
x = np.linspace(0.02, 4, 200)  # above 0: for kappa < 1 the density diverges at x = 0
xi = 0.2
for kappa in [0.8, 1.0, 1.2, 2.0, 3.0]:
    G = st.genpareto.cdf(x, c=xi)
    g = st.genpareto.pdf(x, c=xi)
    scaled_pdf = np.power(G, kappa - 1) * g  # ExtGPD density divided by kappa.
    plt.plot(x, scaled_pdf, label=rf'$\kappa$ = {kappa}')
plt.xlabel('x', fontsize=12)
plt.ylabel('tail-scaled density', fontsize=12)
plt.ylim(0, 1.5)
plt.legend(loc='upper right', title=rf'$\mu = 0,\ \sigma = 1,\ \xi = {xi}$')
plt.show()