【问题标题】:Save Jupyter Notebook with Plotly Express widgets displaying保存显示 Plotly Express 小部件的 Jupyter Notebook
【发布时间】:2019-12-30 16:56:16
【问题描述】:

我有一个 Jupyter 笔记本 (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()

【问题讨论】:

  • 您能分享一个指向您笔记本的链接吗?你在用FigureWidget吗?如果您不是,那么只需 figure.show() 显示图表并导出为 HTML,对我来说没有问题。
  • 我无法完全共享笔记本,但在我绘制的地方添加了一行代码。我使用了figure.show(),但它给出了相同的结果,即在导出到 html 时不显示数字
  • 您使用的是哪个版本的 Jupyter 和 Nbconvert?您正在运行的 nbconvert 命令是什么?这对我有用...
  • nbconvert 5.4.1 和 jupyter 1.0.0(使用 Anaconda 2019.03)
  • 我在尝试转换时也收到此警告:C:\ProgramData\Anaconda3\lib\site-packages\nbconvert\filters\datatypefilter.py:41: UserWarning: Your element with mimetype(s) dict_keys(['application/vnd.plotly.v1+json']) is not able to be represented. mimetypes=output.keys())

标签: python jupyter-notebook plotly data-visualization plotly-express


【解决方案1】:

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

我希望这对每个人的安装和设置有所帮助。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 这在 Visual Studio Code 交互模式下对我有用,它建立在 jupyter notebook 上。
    • 这是一个困扰我好几个月的问题。完全成功!
    【解决方案3】:

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

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

    我必须将以下 sn-p 添加到我的脚本中:

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

    之后导出为 HTML 对我有用。您可以阅读“覆盖默认渲染器”。

    我想你会需要

    pio.renderers.default = 'notebook' 
    

    【讨论】:

    • 试过这样做,但在创建 html 版本时仍然出现错误:UserWarning: Your element with mimetype(s) dict_keys(['application/vnd.plotly.v1+json']) is not able to be represented. 我假设这与我看不到数字有关?
    • 我认为渲染器将在较新版本的 plotly 中可用。 4.0 更新对此有一些信息:community.plot.ly/t/introducing-plotly-py-4-0-0/25639
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 2020-05-10
    • 2022-08-15
    • 1970-01-01
    • 2019-05-02
    • 2018-03-10
    相关资源
    最近更新 更多