Я создаю небольшую сеть с Django, и я ищу график линейной функции с машинным обучением, используя matplotlib. Когда я делаю код в Spyder, изображение выглядит так здесь
Однако при использовании Django и желании встроить график возникает ошибка, хотя этого не происходит, если я удаляю несколько строк кода. Это первая часть кода:
def plot(request):
plt.rcParams['figure.figsize'] = (9, 6)
plt.style.use('ggplot')
data = pd.read_csv("datos.csv")
filtered_data = data[(data['Fecha'] <= 30) & (data['Oxxos'] <= 50000)]
colores=['orange','blue']
tamanios=[30,60]
f1 = filtered_data['Fecha'].values
f2 = filtered_data['Oxxos'].values
f = plt.figure()
asignar=[]
for index, row in filtered_data.iterrows():
if(row['Fecha']>7):
asignar.append(colores[0])
else:
asignar.append(colores[1])
plt.scatter(f1, f2, c=asignar, s=tamanios[0])
dataX =filtered_data[["Fecha"]]
X_train = np.array(dataX)
y_train = filtered_data['Oxxos'].values
regr = linear_model.LinearRegression()
regr.fit(X_train, y_train)
y_pred = regr.predict(X_train)
## HERE IS WHERE THE CODE BELOW WOULD GO ##
buf = io.BytesIO()
canvas = FigureCanvasAgg(f)
canvas.print_png(buf)
response = HttpResponse(buf.getvalue(), content_type='image/png')
f.clear()
response['Content-Length'] = str(len(response.content))
return response
До этой части рисунок выглядит примерно так здесь . Код, вызывающий проблемы, - это код между y_pred = regr.predict (X_train) и buf = io.BytesIO (). Код, который идет между этими двумя строками, отвечает за построение линейной функции, однако при ее размещении возникает следующая ошибка здесь
def f(x):
return regr.coef_*x+2420
x = range(0, 30)
plt.plot(x, [f(i) for i in x])
plt.axhline(0, color="black")
plt.axvline(0, color="black")
plt.xlim(0, 15)
plt.ylim(0, 20000)