Помимо орфографической ошибки в имени функции, вы должны преобразовать свой список в массив вне цикла for, как только вы закончите добавление всех функций.Более того, я не понимаю, почему вы делаете код настолько сложным, когда вы можете просто использовать векторизованную операцию для вашего массива NumPy xs
как ys=xs**4
import numpy as np
from matplotlib import pylab as plt
def sqr(x, n=2):
return float(x ** n)
def get_plot(func, xs, n):
ys = []
for x in xs:
ys.append(func(x, n))
ys = np.array(ys) # <-- moved outside the for loop
plt.plot(xs, ys)
xs = np.arange(1.0, 30., 0.01)
get_plot(sqr, xs, 4)