试图填充3行之间的图形区域

时间:2018-02-10 17:57:13

标签: python matplotlib linear-algebra linear-programming linear

我编写了使用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')

但是当我使用这段代码时:我会在下面填写区域:

enter image description here

我需要填写的内容发布在下面:

enter image description here

编辑:早期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)

但这给了我同样的结果。

0 个答案:

没有答案