Я попытался запустить приведенный ниже код,
import math
import matplotlib.pyplot as plt
from functools import partial
def difference_quotient(f,x,h):
return(f(x+h)-f(x))/h
def square(x):
return x*x
def derivative(x):
return 2*x
derivative_estimate = partial(difference_quotient,square,h=0.0001)
x = range(-10,10)
y = range(-10,10)
plt.title("actual vs estimation")
plt.plot(x,map(derivative,x),'rx',label="actual")
plt.plot(x,map(derivative_estimate,x),'b+',label="estimate")
plt.show()
print(len(list(map(derivative,x))))
, но он показывает ошибку ниже
Traceback (последний вызов был последним): Файл "C: \ Program Files \Python37 \ lib \ site-packages \ matplotlib \ units.py ", строка 168, в get_converter, если не np.all (xravel.mask): AttributeError: объект 'numpy.ndarray' не имеет атрибута 'mask'
Во время обработки вышеупомянутого исключения произошло другое исключение:
Трассировка (последний вызов был последним): файл "C: \ Users \ asus \ Documents \ Sublime \ dataScience \ градиент.py", строка 20, вplt.plot (x, map (производная, x), 'rx', label = "actual") файл "C: \ Program Files \ Python37 \ lib \ site-packages \ matplotlib \ pyplot.py", строка 2811, вplot не имеет значения None else {}), ** kwargs) Файл "C: \ Program Files \ Python37 \ lib \ site-packages \ matplotlib__init __. py", строка 1810, во внутренней функции возврата (ax, * args, ** kwargs)) Файл "C: \ Program Files \ Python37 \ lib \ site-packages \ matplotlib \ axes_axes.py", строка 1611, в сюжете для строки в self._get_lines (* args, ** kwargs): Файл "C: \ Programфайлы \ python37 \ lib \ site-packages \ matplotlib \ axes_base.py ", строка 393, в _grab_next_args - из файла self._plot_args (this, kwargs) Файл" C: \ Program Files \ Python37 \ lib \ site-packages \ matplotlib \ axes_base.py ", строка 370, в _plot_args x, y = self._xy_from_xy (x, y) Файл" C: \ Program Files \ Python37 \ lib \ site-packages \ matplotlib \ axes_base.py ", строка 205, в _xy_from_xy by =self.axes.yaxis.update_units (y) Файл "C: \ Program Files \ Python37 \ lib \ site-packages \ matplotlib \ axis.py", строка 1467, в update_units converter = munits.registry.get_converter (файл данных) "C: \ Program Files \ Python37 \ lib \ site-packages \ matplotlib \ units.py ", строка 181, в get_converter converter = self.get_converter (next_item) Файл" C: \ Program Files \ Python37 \ lib \ site-packages \matplotlib \ units.py ", строка 187, в get_converter thisx = safe_first_element (x) Файл" C: \ Program Files \ Python37 \ lib \ site-packages \ matplotlib \ cbook__init __. py ", строка 1635, в safe_first_element повышают RuntimeError ("matplotlib не поддерживает генераторы "RuntimeError: matplotlib does не поддерживает генераторы в качестве входных данных [Завершено за 0,7 с]
Мой подозреваемый был в этих строках
plt.plot(x,map(derivative,x),'rx',label="actual")
plt.plot(x,map(derivative_estimate,x),'b+',label="estimate")
, когда я пытался изменить карту (производная, x) иmap (производная_счет, х) с y, который является диапазоном (-10,10), он работает.
что мне делать, чтобы код мог показать график, когда я использую функцию карты, как описано выше?