Rub*_*ert 1 matplotlib python-2.7
我想在水平轴上的两个值之间的某些曲线下填充区域.我试过了
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import norm
x = np.linspace(-4,4, 10000)
nVals = [norm.pdf(i,0,1) for i in x]
line = plt.plot(x,nVals)
plt.fill_between(x,nVals,color = '#111111',where = x > -3 and x < -2)
plt.axis([-4,4,0,.5])
plt.show()
Run Code Online (Sandbox Code Playgroud)
但它回来了
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我不明白这个消息; 我跑的时候
z = -2.5
print z > -3 and z < -2
Run Code Online (Sandbox Code Playgroud)
Python 确实理解我的意思和打印
True
那么为什么这不起作用,fill_between我该如何解决呢?
发生此错误是因为
x > -3 and x < -2
Run Code Online (Sandbox Code Playgroud)
是一个模糊的numpy表达式,因此它引发了错误.相反,你想要
(x > -3) & (x < -2)
Run Code Online (Sandbox Code Playgroud)
其他选择是使用logical_and或bitwise_and(甚至*应该工作).
| 归档时间: |
|
| 查看次数: |
2116 次 |
| 最近记录: |