将 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 图形保存到文件的主要内容,如果未能解决你的问题,请参考以下文章