有没有办法将多个 Plotly HTML 文件离线合并/嵌入到一个页面/HTML 文件中?
Posted
技术标签:
【中文标题】有没有办法将多个 Plotly HTML 文件离线合并/嵌入到一个页面/HTML 文件中?【英文标题】:Is there a way to merge/embed multiple Plotly HTML files into one page/HTML file offline? 【发布时间】:2018-05-08 21:49:47 【问题描述】:我正在尝试将多个图表组合成一份 html 报告以发送出去。问题是我真的不认为子图是最好的主意,因为图表相对不相关(不同的 X/Y 轴)。我需要做的只是将图表附加到 1 个 HTML 文件中。有一个指南解释了如何使用 plotly URLs,但我不想依赖互联网连接来自动报告,我希望能够在线查看这些报告
我正在尝试创建一个 HTML 报告,它只是将多个情节图附加到一个 HTML 文件中,而不是拥有多个单独的 HTML 文件。这些图表并不真正相关,因此对创建子图不感兴趣。理论上它只是一个 HTML 文件,所以我可以以某种方式复制和粘贴代码并让它们都显示出来,对吗?
我指的文档:https://plot.ly/python/html-reports/
【问题讨论】:
我不明白你为什么要避免子图 - 我认为这是获得组合 HTML 的最简单方法。 您想要交互式 D3s 图形,还是仅在 HTML 容器中嵌入一系列静态 PNG 图像就足够了?后者应该是微不足道的。 最好是交互式 D3 图。我不想做子图的原因是因为有几十个图表根本不共享X/Y轴,创建多条轨迹会非常耗时 【参考方案1】:以您想要的格式创建网格布局,然后以编程方式将 html 插入到网格中
【讨论】:
【参考方案2】:这里是基于https://***.com/a/58336718/4286380的建议
def plot_list(df_list):
fig_list =[]
from plotly.subplots import make_subplots
# Creation des figures
i=0
for df in df_list:
i+=1
fig = go.Figure()
fig.add_trace(go.Scatter(x=list(df.Date), y=list(df.Temp), name="Température"))
# Add figure title
fig.update_layout(
title_text=f"Cas n°i")
# Set x-axis title
fig.update_xaxes(title_text="Date")
fig_list.append(fig)
# Création d'un seul fichier HTML
filename=f"os.path.join('output', 'full_list.html')"
dashboard = open(filename, 'w')
dashboard.write("<html><head></head><body>" + "\n")
include_plotlyjs = True
for fig in fig_list:
inner_html = fig.to_html(include_plotlyjs = include_plotlyjs).split('<body>')[1].split('</body>')[0]
dashboard.write(inner_html)
include_plotlyjs = False
dashboard.write("</body></html>" + "\n")
【讨论】:
以上是关于有没有办法将多个 Plotly HTML 文件离线合并/嵌入到一个页面/HTML 文件中?的主要内容,如果未能解决你的问题,请参考以下文章