import numpy as np
import matplotlib.pyplot as plt

def u(x, p):
    if p == 0:
        return x
    else:
        return (np.exp(p*x)-1)/(np.exp(p)-1)


x = np.linspace(0, 1, 200)

t = np.linspace(-1, 1, 15)
p_values = 50 * np.sign(t)*np.power(t,2) #make more values around 0

cmap = plt.cm.rainbow

plt.figure()

for p, color in zip(p_values, cmap(np.linspace(0, 1, len(p_values)))):
    plt.plot(x, u(x, p), color=color, linewidth=2, label=f"p={p:.0f}")


plt.xlabel("x")
plt.ylabel("u(x)")
plt.legend()
plt.grid(True)
plt.show()
