将 pivottablejs 图形保存到文件

Posted

技术标签:

【中文标题】将 pivottablejs 图形保存到文件【英文标题】:Save a pivottablejs figure to file 【发布时间】:2017-10-01 04:15:50 【问题描述】:

我已经开始使用包pivottablejs 在python 中操作和可视化数据透视表。

from pivottablejs import pivot_ui
pivot_ui(df)  # where df is a pandas dataframe

将在 jupyter notebook 中生成交互式数据透视表/绘图。

是否有任何 pythonic 方法可以从 jupyter 笔记本中将此包生成的数字保存到(比如说)png?我正在寻找类似于经典plt.savefig('file.png') 的东西。前端本质上是javascript,我不知道如何(或者是否可能)通过python访问一个javascript图形。

【问题讨论】:

您可以使用pickle保存文件。不过,您是否希望在屏幕上截取图像? 理想情况下,我希望得到与 plt.savefig('file.png') 相同的结果 【参考方案1】:

这对于评论来说太长了,所以我将其添加为答案。 pivottablejs 将图像创建为 svg,它们不为图像提供任何下载/导出机制。但是你可以做的就是将 js 注入到单元格中并使用它下载 svg。

一种简单的方法是使用svg-crowbar.js。使用pivot_ui 生成图表并在屏幕上显示输出后,在下一个单元格中运行以下命令以下载 svg。

In [10]: %%javascript
         var e = document.createElement('script'); e.setAttribute('src', 'https://nytimes.github.io/svg-crowbar/svg-crowbar.js'); e.setAttribute('class', 'svg-crowbar'); document.body.appendChild(e);

注意:这仅适用于 chrome。

【讨论】:

谢谢。这有效(在铬上)。这似乎是目前最好的解决方案,虽然它并不完全是我的想法 我明白,但也许你可以使用 matplotlib 代替 pivottablejs。这样你就可以得到一个可以保存的 png。【参考方案2】:

您可以通过指定 outfile_path 将其保存为 html

pivot_ui(df, outfile_path="yourpathname.html")

【讨论】:

谢谢,但这不会保存整个页面吗?我只需要保存图。

以上是关于将 pivottablejs 图形保存到文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将 CorePlot 创建的图形保存为 jpg 文件

如何将图形保存在文件中,然后再调用它?

试图在 R 中保存图形,但文件太大。试图缩小它

matplotlib 可以将元数据添加到保存的图形中吗?

如何使用 ggplot 在 R 中自动绘制图形并将它们保存到文件夹中?

Python机器学习(七十)Matplotlib 保存图形