Нужно чтобы это все было на одной странице. Сейчас каждая функция на отдельной странице выдает решение.
Функция k_means и ier:
def k_means(request):
import django
from gigaapp.k_means_app import main
canvas=main()
response=django.http.HttpResponse(content_type='image/png')
canvas.print_png(response)
return response
def ier(request):
import django
import xlrd
import matplotlib
matplotlib.use('Agg')
from scipy.spatial.distance import pdist
from scipy.cluster.hierarchy import linkage, dendrogram
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib import pyplot as plt
rb = xlrd.open_workbook(os.path.dirname(__file__)+'/data.xlsx')
sheet = rb.sheet_by_index(0)
x = [sheet.row_values(rownum) for rownum in range(sheet.nrows)]
del (x[0])
i=0
n=len(x)
while i<n:
del x[i][0]
i=i+1
fig=plt.figure(figsize=(15, 10))
ax=fig.gca()
ax.yaxis.set_visible(False)
plt.title('Clustering')
plt.xlabel('Index')
y=pdist(x)
data=linkage(y)
dendrogram(data,color_threshold=1,show_contracted=True)
canvas=FigureCanvas(fig)
response=django.http.HttpResponse(content_type='image/png')
canvas.print_png(response)
return response
def current_ier(request):
return ier(request)
def current_kmeans(request):
return k_means(request)
Если делать так
def ier_kmeans(request):
a = k_means(request)
b = ier(request)
return render(request, 'some_template.html', {'a': a, 'b': b})
то выдает ошибку
'utf8' codec can't decode byte 0x89 in position 27: invalid start byte. You passed in <HttpResponse status_code=200, "image/png"> (<class 'django.http.response.HttpResponse'>)