【发布时间】:2020-11-05 21:31:36
【问题描述】:
我编写了一个简单的代码,绘制了两行。然后我尝试使用 fill_between 填充它们之间的区域,但我得到了这个我不明白的奇怪错误:
文件“C:\Python27\lib\site-packages\matplotlib\axes_axes.py”,第 5101 行,在 fill_between '不是一维的。') ValueError:传入参数“u'x'”的输入不是一维的。
这是我的代码示例,其中 q、DelTheta5、DelTheta50、DelTheta95 分别是相同维度和大小的 np 个数组,
import matplotlib.pyplot as plt
plt.figure(1)
#fig1, ax1 = plt.subplots()
plt.plot(q, DelTheta5, linewidth=2, linestyle='dashed', color='black')
plt.plot(q ,DelTheta50, linewidth=2, color='black')
plt.plot(q, DelTheta95, linewidth=2, linestyle='dotted', color='black')
plt.fill_between(q, DelTheta5, DelTheta95)
我可以让它与我在网上找到的使用随机数据的不同示例一起工作。但是上面的数据和代码 sn-p 对我不起作用(语法对我来说是正确的)。有人知道这个 ValueError 的来源吗?我的数据数组很干净(所有元素都是浮点数)。我正在使用 python 2.7.18。
感谢您的帮助
【问题讨论】:
-
语法没有问题。您可以使用minimal working example 复制它并与我们分享吗?
-
另外,您是否检查了数组的形状,并使用
np.squeeze压缩了任何单一维度? -
看起来 np.squeeze 成功了!!我的数组是从 .mat 文件中导入的,所以肯定有一些额外的维度。我一直在尝试几种重新调整数组大小的方法,但它们没有奏效。这个 np.squeeze 函数虽然有效!太感谢了!如果您将评论写为答案,我会接受。
标签: python matplotlib plot