对大于 2 条线的区域并集进行着色
Shading the union of areas greater than 2 lines
你能帮我把下面突出显示为红色的区域加阴影吗?
我使用“fill_between”尝试或阅读过的有关此主题的所有内容都将填满两行之间的区域。
然而,这实际上需要用大于 1/X 的区域遮蔽大于 Y=X UNION 的区域(在我的粗略示例中,它被遮蔽为红色。
如您所见,我的尝试总是导致填充线条之间区域的某种组合。
代码:
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)
感谢您的建议
此致,
F.
这个呢?
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()
即取两个函数的最大值(np.maximum),然后填充这个新的最大值函数和一些适当高的天花板之间的区域。
当然你也必须手动设置 y-lim 否则你的绘图将达到 y 的上限值。
你能帮我把下面突出显示为红色的区域加阴影吗?
我使用“fill_between”尝试或阅读过的有关此主题的所有内容都将填满两行之间的区域。 然而,这实际上需要用大于 1/X 的区域遮蔽大于 Y=X UNION 的区域(在我的粗略示例中,它被遮蔽为红色。
如您所见,我的尝试总是导致填充线条之间区域的某种组合。
代码:
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)
感谢您的建议
此致, F.
这个呢?
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()
即取两个函数的最大值(np.maximum),然后填充这个新的最大值函数和一些适当高的天花板之间的区域。
当然你也必须手动设置 y-lim 否则你的绘图将达到 y 的上限值。