首页 > 解决方案 > 尝试创建子图但不断收到 ValueError 消息

问题描述

我正在尝试使用 plt.subplots 方法绘制 2 个具有相同 X 轴的简单图形。

data1 = np.load("data.npy") #loading numpy arrays to be plotted on y axis. both are same length.
data2 = np.load("data2.npy")

x1 = np.arange(100,len(fddata),100) # share x axis. set to have same length

fig, (ax1,ax2) = plt.subplots(nrows=2, ncols=1, sharex = True)
ax1.plot(x1, data1)
ax2.plot(x1, data2)
plt.show()

但是,使用此代码不会创建图表。我收到错误消息“ValueError:x 和 y 必须具有相同的第一维,但具有形状 (62,) 和 (18598,)”。即使我的 X 和 Y 数据应该是相同的大小。我只是想知道是什么导致了这种情况,因为我已经检查过但不确定。谢谢你。

标签: pythonarraysnumpymatplotlibsubplot

解决方案


你 x1 必须像这样定义。

x1=np.arange(len(data1))

否则你会得到一个更短的数组。

或者更一般地说,您可以使用

x1=np.linspace(x_min,x_max,len(data1))

这为您提供了区间 [x_min,x_max] 上的等距点


推荐阅读