Fill_Between返回ValueError:参数维度不兼容

时间:2015-09-02 15:23:56

标签: python python-2.7 matplotlib

我想在x = 0到x ValueError: Argument dimensions are incompatible。我做错了什么?

import matplotlib.pyplot as plt

fig, (ax1) = plt.subplots(1,1)
x = [1,2,3]
y=[10,20,30]
ax1.plot(x, y)
ax1.fill_between(x, 0, y, where=x<3, facecolor='green', interpolate=True)
plt.show()

1 个答案:

答案 0 :(得分:1)

问题是尝试使用标准python列表创建一个布尔掩码。如果您将xy投射到numpy.array,那么一切都应该有效。

import matplotlib.pyplot as plt
import numpy as np

fig, (ax1) = plt.subplots(1)
x = np.array([1,2,3])
y = np.array([10,20,30])
ax1.plot(x, y)
ax1.fill_between(x, 0, y, where=x<3, facecolor='green', interpolate=True)
plt.show()

enter image description here

如果x是python列表,x<3会返回False,但fill_between的{​​{1}}关键字需要where numpy布尔数组。

N-length