Форум сайта python.su
Здравствуйте!
Застрял с небольшим циклом:
Питон ругается что длины списков x и y разной длины, и поэтому не строит график:
ValueError: x and y must have same first dimension, but have shapes (69,) and (1,)
Очевидно проблема в цикле, только вот не пойму никак что не так…
import numpy as np import matplotlib.pyplot as plt Lmax = 34.367 d_2 = 80 d_1 = 44 d_0 = 20 b_2 = d_2 / 12 fi_0 = 5 F_0 = np.pi * (d_1 ** 2 - d_0 ** 2) * np.cos(np.deg2rad(fi_0)) / 4 F_2 = np.pi * d_2 * b_2 s = np.arange(0, Lmax, 0.5) def F(s): for j in s: if j < 10: return F_0 else: return (F_2 - F_0) * (j - 10) / (Lmax - 10) + F_0 fig4 = plt.figure("Изменение площади проходного сечения колеса по длине центроиды") graph4 = plt.plot(s, F(s)) print('Plot: ', len(graph4), graph4) grid4 = plt.grid(True) # линии вспомогательной сетки plt.show()
Офлайн
GJGUGЧтобы понять что не так запустите отладчик и посмотрите как рабоатет функция F.
только вот не пойму никак что не так…
GJGUGВы сразу убедитеть что она нписана вами так что возвращает число а не массив, о чем вам питон и толкует.
but have shapes (69,) and (1,)
Офлайн