Python 多行之间的Matplotlib填充
我想在matplotlib.pyplot中填充3行,但不幸的是,Python 多行之间的Matplotlib填充,python,matplotlib,Python,Matplotlib,我想在matplotlib.pyplot中填充3行,但不幸的是,fill\u between使我有机会只填充两行。你知道怎么处理吗 编辑: 好的,我没有解释我真正的意思,因为我不能用我目前的声誉添加图片,所以可能是这样: 我试着填充这些线所包围的多边形,但我不知道如何填充,因为fill_between让我有机会只填充其中两条线之间的区域。在填充公式下方: y <= 4- 2x y <= 3 - 1/2x y <= 1 - x y >= 0 x >= 0 y要使用,
fill\u between
使我有机会只填充两行。你知道怎么处理吗
编辑:
好的,我没有解释我真正的意思,因为我不能用我目前的声誉添加图片,所以可能是这样:
我试着填充这些线所包围的多边形,但我不知道如何填充,因为fill_between让我有机会只填充其中两条线之间的区域。在填充公式下方:
y <= 4- 2x
y <= 3 - 1/2x
y <= 1 - x
y >= 0
x >= 0
y要使用,请首先指定X值,而不是要“填充”的两个y集。下面是一个例子:
import pylab as plt
import numpy as np
X = np.linspace(0,3,200)
Y1 = X**2 + 3
Y2 = np.exp(X) + 2
Y3 = np.cos(X)
plt.plot(X,Y1,lw=4)
plt.plot(X,Y2,lw=4)
plt.plot(X,Y3,lw=4)
plt.fill_between(X, Y1,Y2,color='k',alpha=.5)
plt.fill_between(X, Y1,Y3,color='y',alpha=.5)
plt.show()
相反,如果您只想填充Y2和Y3之间的值:
plt.fill_between(X, Y2,Y3,color='m',alpha=.5)
这会给你
< P>如果在点(0, 0)中开始绘图,因此不需要考虑多边形的面积而不在第一象限中,那么在这种特殊情况下应该这样做:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0,10,0.1)
# The lines to plot
y1 = 4 - 2*x
y2 = 3 - 0.5*x
y3 = 1 -x
# The upper edge of polygon (min of lines y1 & y2)
y4 = np.minimum(y1, y2)
# Set y-limit, making neg y-values not show in plot
plt.ylim(0, 5)
# Plotting of lines
plt.plot(x, y1,
x, y2,
x, y3)
# Filling between line y3 and line y4
plt.fill_between(x, y3, y4, color='grey', alpha='0.5')
plt.show()
只需计算多边形的角点,即直线相交的点。
然后使用绘制多边形
例如:
import matplotlib.pyplot as plt
# define corner points
x = [1,2,1,0]
y = [2,1,0,1]
# plot
plt.fill(x,y)
plt.show()
结果图像:
您能否详细说明问题,并提供一些模拟数据和/或您想要获得的示例请注意,此答案基于编辑前发布的原始问题。是否可以在其中一个交点上添加一个小节点(圆),以便将其与其他交点区分开来,说在蓝色和绿色的交叉点?也可以显示该点的坐标吗?
import matplotlib.pyplot as plt
# define corner points
x = [1,2,1,0]
y = [2,1,0,1]
# plot
plt.fill(x,y)
plt.show()