使用显示的 Plotly Express 小部件保存 Jupyter Notebook

Save Jupyter Notebook with Plotly Express widgets displaying

我有一个 Jupyter notebook (python),我使用 plotly express 在笔记本中绘图以进行分析。 我想与非编码人员共享此笔记本,并让交互式视觉效果仍然可用 - 但它似乎不起作用。

我尝试遵循 recommendations made here 但即使在保存小部件状态并使用 nbconvert 之后,当我打开新的 HTML 文件时,视觉效果也不可用。

绘图样例如下:

import plotly_express as px
fig = px.scatter(
    df, 
    x='size', 
    y='size_y', 
    color='clients',
    hover_data=['id'], 
    marginal_y="histogram", 
    marginal_x="histogram"
)
fig.show()

我遇到了类似的问题,但使用的是 JupyterLab。按照此处的说明进行操作:https://plot.ly/python/renderers/

import plotly.io as pio
pio.renderers.keys()

我必须将以下片段添加到我的脚本中:

import plotly.io as pio
pio.renderers.default = 'jupyterlab'

导出为 HTML 之后对我有用。你可以阅读"Overriding the default renderer"。

我想你需要

pio.renderers.default = 'notebook' 

在 运行 plotly.offline.init_notebook_mode() 单元格后, 您可以通过文件菜单以完全交互的方式导出笔记本: File --> Export Notebook as... --> Export Notebook to HTML.

我同意@hamiq。使用新版本的 plotly 和 Dash,在 JupyterLab 内部使用和处理交互式绘图都变得更加容易。这是我制作的教程的 link,它解释了如何开始使用 JupyterLab 和 JupyterDash。 https://youtu.be/QkOKkrKqI-k

我希望这对大家的安装和set-up有所帮助。

您可以使用 plotly 指定默认渲染器:

    import plotly.io as pio
    pio.renderers.default = 'pdf'

或显示图像时:

    fig.show(renderer="pdf")

您的 2 个选择是:

  • 'notebook':与 jupyter notebook 配合良好;
  • 'pdf':使用 nbconvert 转换为 HTML 或 LATEX
  • 时完美

您还可以将 2 与“notebook+pdf”连接起来,这样当 运行 使用 nbconvert 转换笔记本和静态图像时,您可以获得迭代图。