使用Python从Plotly获取<script>和<div>标签

HMS*_*tia 7 html python plotly

我想知道是否有人知道一个好方法(最好是内置方法,但我当然愿意自己编写)来从Plotly离线客户端的HTML输出中获取<script><div>标记.

我已经熟悉散景并非常喜欢将它用于2D可视化,但我真的很想将Plotly与其3D可视化功能集成在一起.

如果您需要有关该项目的任何其他详细信息,请告诉我们.

Fer*_*lva 17

如果你打电话:

plotly.offline.plot(data, filename='file.html')
Run Code Online (Sandbox Code Playgroud)

它会创建一个名为的文件file.html,并在您的Web浏览器中将其打开.但是,如果你这样做:

plotly.offline.plot(data, include_plotlyjs=False, output_type='div')
Run Code Online (Sandbox Code Playgroud)

该调用将返回一个字符串,其中只包含创建图表所需的div,您可以将其存储在您想要的任何变量中(而不是存储在磁盘中).

我只是尝试了它并返回,对于我正在做的给定图表:

<div id="82072c0d-ba8d-4e86-b000-0892be065ca8" style="height: 100%; width: 100%;" class="plotly-graph-div"></div>
<script type="text/javascript">window.PLOTLYENV=window.PLOTLYENV || {};window.PLOTLYENV.BASE_URL="https://plot.ly";Plotly.newPlot("82072c0d-ba8d-4e86-b000-0892be065ca8", 
[{"y": ..bunch of data..., "x": ..lots of data.., {"showlegend": true, "title": "the title", "xaxis": {"zeroline": true, "showline": true}, 
"yaxis": {"zeroline": true, "showline": true, "range": [0, 22.63852380952382]}}, {"linkText": "Export to plot.ly", "showLink": true})</script>
Run Code Online (Sandbox Code Playgroud)

请注意它只是一小部分html,你应该嵌入一个更大的页面.为此,我使用像Jinga2这样的标准模板引擎.

有了这个,您可以创建一个html页面,其中包含按您想要的方式排列的几个图表,甚至可以将其作为服务器响应返回给ajax调用,非常可爱.

更新:

请记住,您需要包含所有这些图表的plotly js文件才能工作.

您可以<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>在放入div之前加入.如果您将此js放在页面底部,则图表将无法使用.

  • 文档从https://plot.ly/python/开始,但它基于示例,而不是超级完整.还有https://plot.ly/python/offline/和一个非常完整的参考:https://plot.ly/python/reference/.否则你可能只是阅读源代码:https://github.com/plotly/plotly.py/blob/master/plotly/offline/offline.py#L314 (2认同)
  • 没问题老兄:) (2认同)

Mic*_*n G 8

对于 Plotly 4,使用plotly.io.to_html

import plotly

# Returns a `<div>` and `<script>`
plotly.io.to_html(figure, include_plotlyjs=False, full_html=False)

# Returns a full standalone HTML
plotly.io.to_html(figure)
Run Code Online (Sandbox Code Playgroud)

参考:https://plotly.com/python-api-reference/ generated /plotly.io.to_html.html