Could you please help me shade the area highlighted as red below.
Everything I have tried or read on this topic using "fill_between" will fill the area between the lines. However, this actually needs to shade the area greater than Y=X UNION'd with the area great than 1/X (which is shaded as red in my crude example.
As you can see, my attempts always result in some combination of the area between the lines being filled.
Code:
x = np.linspace(0.0,15.0,150)
y = x
y_ = 1/x
d = scipy.zeros(len(y))
fig, ax = plt.subplots(1,1)
ax.plot(x, y)
ax.plot(x, y_)
ax.legend(["y >= x", "y >= 1/x"])
ax.fill_between(x, y, y_, where=y_>d, alpha=0.5, interpolate=True)
Thank you for the suggestions
Regards, F.
What about this?
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0.0,15.0,150)
y = x
y_ = 1/x
ceiling = 100.0
max_y = np.maximum(y, y_)
d = np.zeros(len(y))
fig, ax = plt.subplots(1,1)
ax.plot(x, y)
ax.plot(x, y_)
ax.legend(["y >= x", "y >= 1/x"])
plt.ylim((0, 10))
ax.fill_between(x, max_y, ceiling, where=y_>d, alpha=0.5, interpolate=True)
plt.show()
i.e. take the max (np.maximum) of the two functions, then fill the area between this new max function and some suitably high ceiling.
Of course you also have to manually set the y-lim or your plot will reach the ceiling value in y.