Пытаюсь создать подзаголовки, но продолжаю получать сообщение ValueError

#python #arrays #numpy #matplotlib #subplot

#python #массивы #numpy #matplotlib #подзаголовок

Вопрос:

Я пытаюсь использовать метод 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 должны быть одинакового размера. Мне просто интересно, что может быть причиной этого, поскольку я прошел и проверил, но не уверен. Спасибо.

Ответ №1:

Вы x1 должны быть определены следующим образом.

 x1=np.arange(len(data1))
  

В противном случае вы получите гораздо более короткий массив.

Или, в более общем смысле, вы можете использовать

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

что дает вам равномерно распределенную точку на интервале [x_min, x_max]