我编写了使用python在图表上绘制3个方程的代码。我想要做的是使用fill_between填充图表的区域。出于某种原因,我不能按照我想要的方式填写这个区域。我的代码发布在下面。
figure()
x=arange(0,20,1)
y1 = -x + 5
y2 = -x + 10
y3 = x - 3
xlim(0,20)
ylim(0,20)
##determine our points
plot(x,y1,c='r',label='y=-x+5') ##red line
plot(x,y2,c='b',label='y=-x+10')##blue line
plot(x,y3,c='g',label='y=x-3') ##green line
legend(['y=-x+5','y=-x+10','y=x-3'])
fill_between(x,y1,y2,y3,color='blue',alpha='0.5')
但是当我使用这段代码时:我会在下面填写区域:
我需要填写的内容发布在下面:
编辑:早期Matplotlib problem posted on this site的答案没有解决这个问题。当我运行该代码时,我将收到一条错误消息:ValueError: x and y must have same first dimension, but have shapes (200,) and (20,)
我没有要转换为数组的数值。我不确定如何将这些方程转换成我可以使用该方法使用fill_between的方式。
我也尝试过这种方法:
import pylab as plt
import numpy as np
X=arange(0,20,1)
Y1 = np.array(-x + 5)
Y2 = np.array(-x + 10)
Y3 = np.array(x - 3)
plt.ylim(0,20)
xlim(0,20)
plt.plot(X,Y1,lw=4)
plt.plot(X,Y2,lw=4)
plt.plot(X,Y3,lw=4)
plt.fill_between(X, Y1,Y2,Y3,color='k',alpha=.5)
但这给了我同样的结果。