用x和y的数组调用图函数会做什么?查看第15行。

x1 = stats.norm.ppf(0.001)
x2 = stats.norm.ppf(0.999)

x = np.linspace(x1, x2, 100)

y = stats.norm.pdf(x)

yhalf = []
for i in range(len(x)):
    if i > len(x)/2:
        yhalf.append(y[i])
    else:
        yhalf.append(0)

plt.plot([x, x], [y, yhalf], 'y-')

plt.axes().set_xlim(x1, x2)


python - Matplotlib:用数组调用plot函数有什么作用?-LMLPHP

它是否填充了两条曲线之间的区域?我们可以控制或填充样式吗?我想用光滑的颜色填充透明度。

谢谢!

最佳答案

the docs


  如果x和/或y是二维的,则将绘制相应的列。


也就是说,如果我们有a, b, c, d个所有np.array且大小相同的s,则命令plt.plot([a, b], [c, d])将绘制s行数(a[0], c[0]) -> (b[0], d[0])

在您的情况下,yhalf[0:len(x)/2]为0,其他值与y相同。根据我之前所说,您从(x[i], y[i]) -> (x[i], yhalf[i])绘制线,

case 1: i <  len(x)/2: (x[i], y[i]) -> (x[i], 0)    <-- the columns you see
case 2: i >= len(x)/2: (x[i], y[i]) -> (x[i], y[i]) <-- lines with 0 length (== invisible)




如果要填充两条曲线之间的区域,请尝试fill_between。如果我没记错的话,您应该可以将其用作

plt.fill_between([x, y], [x, yhalf])

关于python - Matplotlib:用数组调用plot函数有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43015690/

10-09 05:10