我正在尝试在具有整数“列表”(1...300) 和一些“值”( float )的图表上绘制一些垂直线。以下代码在 x=[48] 时有效,但是当 x 设置为 x=[48, 83, 155, 292] 时,以下代码:
pylab.plot(list, values, label='Trend', color='k', linestyle='-')
pylab.axvline(x, linewidth=1, color='g')
生成此错误:
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 2053, in axvline
ret = ax.axvline(x, ymin, ymax, **kwargs) File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 3478, in axvline
scalex = (xx<xmin) or (xx>xmax) ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
这是什么意思? (我觉得 python 假装知道什么时候真相是模棱两可的,这很有趣)。我不能将列表传递给 axvline 吗?
最佳答案
不,您不能将列表传递给 axvline
。对于一行中的多条垂直线,这样的事情就可以了
[pylab.axvline(_x, linewidth=1, color='g') for _x in x]
关于python - matplotlib axvline 真相模棱两可或列表问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21300953/