yts*_*s61 11 python plotly plotly-dash
我已经构建了一个可交互的仪表板,并且正在寻找一种将此应用程序导出为 HTML 格式并与他人共享的方法。
对我有什么提示吗?
我用谷歌搜索,大多数答案将我转移到以下链接。
https://plot.ly/python/getting-started-with-chart-studio/
我试图把:
import plotly.io as pio
pio.write_html(app, file='hello_world.html', auto_open=True)
Run Code Online (Sandbox Code Playgroud)
在我的 app.py 之后:
if __name__ == "__main__":
app.run_server(debug=True, port=8052)
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
Car*_*ado 14
所以我认为你需要的答案是“这是不可能的”。
为了澄清将仪表板转换为 HTML 的重复问题:
HTML 是一种标记语言;它以美观的方式显示文本,您可以使用 CSS 来提高美观度。
像仪表板一样的交互性理念,其中 onClick() 会导致视觉效果发生变化,因为 csv 文件被重新查询、过滤或重新计算,这就是服务器端为 HTML/CSS/JavaScript 前端带来的效果。
您无法仅在 HTML 文件中获得具有交互性的完全封装的仪表板。您必须将服务器端逻辑带到桌面上。这就是为什么每个人都提到 Heroku、AWS 等。
现在,如果您的仪表板不是交互式的,它实际上只是一堆带有一些基本悬停效果的静态视觉效果;然后,独立的 HTML 文件可以读取包含悬停在准备好的文本上的 SVG。这就是plotly的write_html所做的(我的理解是plotly.offline.plot只是在幕后使用它或类似的东西)。
其他人指出的要点,复制在这里:
https://gist.github.com/ybressler/e0d40e63a5f35cf2dda65378333c6436
显示仅 HTML“仪表板”的限制。您可以显示/隐藏以及将鼠标悬停在点上,但是如果没有服务器端或隐藏在某处的非常臃肿且复杂的显示/隐藏逻辑,则无法合并更改值的滑块。
假设您的应用程序有许多相互关联的组件,我建议您将plotly dash应用程序部署到heroku: https: //dash.plot.ly/deployment
如果您有多个图形对象,您可以使用以下代码将它们单独导出到 html:
plotly.offline.plot(
# Your plotly go figure here
show_link=False,
filename = 'my_file.html'
)
Run Code Online (Sandbox Code Playgroud)
或者,如果您想嵌入图表:
from plotly.offline.offline import _plot_html
#Only for embedding
embedable_chart = plotly.offline.plot(fig, include_plotlyjs=False, output_type='div')
f = open("embedable_chart.text", "w")
f.write(embedable_chart)
f.close()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11521 次 |
| 最近记录: |