#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]