Как отобразить несколько графиков Plotly на веб-странице HTML? (с помощью plot_div)
Я хочу отобразить несколько графиков plotly на веб-странице HTML. Я перепробовал много кодов, но самый простой, который я нашел, был следующим:
В моей функции представления у меня есть:
for graphs in res:
plot_div = plot(res[graphs], output_type='div')
return render(request, '__', context={'plot_div': plot_div, "result": res})
В моем HTML у меня есть:
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>test</title>
</head>
<body>
{% autoescape off %}
{{ plot_div }}
{% endautoescape %}
</body>
</html>
Однако отображается только последний график. Это происходит потому, что переменная plot_div постоянно обновляется в цикле for. Таким образом, я попытался создать словарь следующим образом:
plot_div = dict()
for index, graphs in enumerate(res, 1):
plot_div.update({index: plot(res[graphs], output_type='div')})
return render(request, 'account/user/IndFin/indfin_resultado.html', context={'plot_div': plot_div, "result": res})
Таким образом, мне нужно было изменить HTML на:
{% for graphs in plot_div %}
{{plot_div.graphs}}
{% endfor %}
Но в результате я получаю на своей веб-странице результат матрицы и последний график. Никаких графиков вообще, только последний. Кто-нибудь уже сталкивался с такой проблемой?
Спасибо
Это нельзя сделать с помощью Plot_div, но можно с помощью plotly введите описание ссылки здесь
Мне кажется, вам нужен список dicts вместо dict, что-то вроде
plot_div = [{index: plot(res[graphs], output_type='div')} for index, graphs in enumerate(res, 1)]
return render(request, 'account/user/IndFin/indfin_resultado.html', context={'plot_div': plot_div, "result": res})
А в вашем шаблоне
{% for plot in plot_div %}
{{plot .output_type}}
{% endfor %}