当前位置: 首页 > 面试题库 >

python将plotly plot保存到本地文件并插入html

仉高昂
2023-03-14
问题内容

我正在使用python并阴谋生产交互式html报告。这篇文章提供了一个不错的框架。

如果我在线生成绘图(通过绘图),然后将url插入html文件,则可以,但是刷新图表会花费很长时间。我想知道是否可以脱机生成图表并将其嵌入到html报告中,以便加载速度不是问题。

我发现离线绘图会为图表生成一个html,但是我不知道如何将其嵌入到另一个html中。有人可以帮忙吗?


问题答案:

选项1 :在Jupyter Notebook中使用plotly的脱机功能(我想您是从提供的链接中使用Jupyter
Notebook)。您可以简单地将整个笔记本另存为HTML文件。在执行此操作时,唯一的外部引用是JQuery。plotly.js将内联在HTML源代码中。

选项2
:最好的方法可能是直接针对plotly的JavaScript库进行编码。可以在这里找到有关此文档: https
//plot.ly/javascript/

更新 :调用内部函数从来都不是一个好主意。我建议使用@Fermin
Silva给出的方法。在较新的版本中,现在还具有专用功能:(plotly.io.to_html请参阅https://plotly.com/python-
api-reference/generation/plotly.io.to_html.html

Hacky选项3
(原始版本仅供参考):如果您确实想继续使用Python,则可以使用一些技巧来提取它生成的HTML。您需要一些最新版本的plotly(已使用进行了测试plotly.__version__ == '1.9.6')。现在,您可以使用内部函数来获取生成的HTML:

from plotly.offline.offline import _plot_html
data_or_figure = [{"x": [1, 2, 3], "y": [3, 1, 6]}]
plot_html, plotdivid, width, height = _plot_html(
    data_or_figure, False, "", True, '100%', 525)
print(plot_html)

您只需将输出粘贴到HTML文档主体中的某个位置即可。只要确保您在头部包含对plot的引用即可:

<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>

另外,您也可以引用用于生成HTML或内联JavaScript源的精确绘图版本(它删除了任何外部依赖关系;但是请注意法律方面)。

您最终得到一些这样的HTML代码:

<html>
<head>
  <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<body>
  <!-- Output from the Python script above: -->
  <div id="7979e646-13e6-4f44-8d32-d8effc3816df" style="height: 525; width: 100%;" class="plotly-graph-div"></div><script type="text/javascript">window.PLOTLYENV=window.PLOTLYENV || {};window.PLOTLYENV.BASE_URL="https://plot.ly";Plotly.newPlot("7979e646-13e6-4f44-8d32-d8effc3816df", [{"x": [1, 2, 3], "y": [3, 1, 6]}], {}, {"showLink": false, "linkText": ""})</script>
</body>
</html>

注意 :函数名称开头的下划线表示_plot_html不应从外部代码中调用它。因此,此代码很可能会随着plotly的未来版本而中断。



 类似资料:
  • 问题内容: 假设我有一个如下所示的javascript对象: 我将其字符串化以转换为JSON。如何将此JSON保存到本地文本文件,以便可以在记事本等中打开它。 问题答案: Node.js: 浏览器(webapi):

  • 我正在尝试使用javascript(前端)和Java(后端)在服务器磁盘上保存一个文件。 JavaScript: 在javascript中,我有一个函数将文件分块并通过Ajax发送给Java。 null null 这是我第一次在Java编程,所以如果你有什么建议,请告诉我。 我试图在Java中创建一个函数,将ajax发送的块保存在TXT中。当javascript检测到最后一个块时,我想用Java将

  • 问题内容: 是否可以将JSON数据保存到本地文本文件中?因此,稍后我可以通过加载该文件再次使用它,并取回存储的JSON数据。其实我真正想做的是在文本文件中导出JSON数据,以便以后可以用作import.Any的建议或解决方案? 这是我要用于导出到文本的一些示例。 http://jsfiddle.net/k56eezxp/ 问题答案: 是否可以将JSON数据保存到本地文本文件中? 是。当前,链接的j

  • 问题内容: 我有这个项目: 导入文件 连接到SQL Server数据库 将所有数据转移到数据库中 文本文件按选项卡划分为四个字段,例如数据库。 我已经完成了使用富文本框并将所有数据保存在字符串中的第一步。我的想法是将字符串拆分为每行并将其保存在数组中,然后:如何拆分每一行,以便可以正确保存字段?如何将SQL Server上的数据库连接到C#上的项目? 问题答案: 让我们一次解决这一步骤… 获取数据

  • 本文向大家介绍Python保存MongoDB上的文件到本地的方法,包括了Python保存MongoDB上的文件到本地的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python保存MongoDB上的文件到本地的方法。分享给大家供大家参考,具体如下: MongoDB上的文档通过GridFS来操作,Python也可以通过pymongo连接MongoDB数据库,使用pymongo模块的gr

  • 我将一个DBF文件输入到数据框中并运行查询。 这是密码。 然后得到这样一个错误。。KeyError:[Int64Index([0],dtype='int64')]中没有一个在[columns]中 这是我想要的文本文件的输出..."2020-01-01 943 527.0 56.46 56.46 0.0 0.0"