所有绘图都显示在笔记本中,但nbconvert笔记本为html,只显示最新的绘图表达绘图



背景

  • 我正在处理3GB数据的数据挑战
  • 我在jupyter笔记本中使用ploy express绘制了大约10个地块
  • 我没有使用fig.show('notebook'),因为它不起作用
  • 我用了py.init_notebook_mode(),所有的情节都完美地显示在笔记本上
  • 它们是简单的图,每个图都有一年的数据,比如fig = px.line(df, x, y, ...)fig.show()

笔记本上的一切都很好。

问题

但在我尝试将笔记本转换为HTML文件之前,只显示了最近的6个绘图。

前4个情节有标题、图例、轴、背景画布,当我悬停在它们上面时,数字会弹出,但情节没有显示出来,每个情节都有一个不愉快的方形脸,上面写着"x〃-眼神。

我试过了:

  • !jupyter nbconvert notebook.ipynb --to html --template classic
  • 或使用--execute
  • 或不带--template
  • 我在更改NotebookApp.max_buffer_size时增加了笔记本的大小,但这不起作用

我怀疑这是nbconvert或HTML相关的内存限制问题,因为:

  • 当我把它减少到6个图时,所有的图都会显示出来
  • 当我添加更多的情节时,第一个开始遇到这个问题,好像有内存限制一样
  • 我认为这些是nbconvert文档,但在编写HTML时,我没有看到任何"限制"或"最大值"?
    • (https://nbconvert.readthedocs.io/_/downloads/en/5.4/pdf/)
    • (https://nbconvert.readthedocs.io/en/latest/config_options.html)

有人解决了同样的问题吗?有人能帮忙吗?

非完美解决方案

  • 我必须点击图例,然后它就会出现
  • 但另一张图又消失了
  • 可用的总数总是6张图,就像有一个极限一样

无意中,我发现当我使用Firefox时,所有的绘图都会显示出来,所以我意识到这是一个渲染问题。

原来默认值是WegGL,我通过添加render_mode='svg'切换到SVG

瓦拉,一切都解决了。

只需在Jupyter-lab中打开笔记本即可。从"文件"菜单中选择要导出为HTML的选项。它对我有效。我还没有找到从命令行使用nbconvert的方法。如果您能提供render_mode='svg'的使用方法,那就太好了。在我的方法中,图像减少了,它们的java脚本也丢失了。

最新更新