如何在网页中嵌入绘图交互式图形

时间:2019-07-24 20:33:31

标签: python django plotly plotly-dash

我有一个由Plotly在Python中生成的交互式图形,我使用plotly.offline.plot(fig, filename='/tmp/interactiveGraph.html')将其保存到html文件中

我现在正尝试使用Dash或Django将此交互式图形嵌入到某种网页中。鉴于我拥有该图的html版本,目前我倾向于Django。 哪个会更好?

我的网页代码与创建图形的代码位于一个单独的文件中。

我在网上找到的许多教程只是说要在模板中添加几行,但我不知道如何获得他们所描述的那些行。

tl; dr:我正在寻找有关如何使用Django或Dash将html文件(用于Plotly交互式图形的HTML文件)与Web python脚本集成的指南

侧面问题:

有什么区别
plotly.offline.plot(fig, include_plotlyjs=False, output_type='div')

以及我上面有什么?

参考:

https://github.com/ricleal/DjangoPlotLy

https://www.pythonsetup.com/how-implement-data-visualization-django-and-plotly/

1 个答案:

答案 0 :(得分:0)

我强烈推荐Django,它是一个很棒的框架。对此,最好的选择是通过JavaScript生成数据,而Plotly为此提供了一个很棒的库。如果必须使用python,则可以使用Django。假设您熟悉Django,则可以在视图内部收集数据并构建图形(除非是小图形,否则我将推荐celery任务进行长期运行,除非它们是小图形),然后您可以收集创建div格式的图形。这将返回一个字符串,其中包含图形所需的所有html和css。将其放入视图中的get_context_data()方法内部,并将其放入字典中。您可以在模板中使用该对象。如果您有困难,请随时与我联系。希望这对您有所帮助!

关于您的副问题,我认为如果包含JS的值为False,则假定您已为密谋JS库提供了包含项,那么图形将变得更小。他们可能已经在较新的版本中做到了这一点,以使图形更快,因为它们在浏览器中比JS渲染的python慢​​得多。