相关疑难解决方法(0)

将%matplotlib笔记本后端的输出包含在ipynb中作为SVG

从几年前的回答显示了如何做jupyter笔记本创建图形为SVG.解决方案是告诉InlineBackend使用svg输出.

import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format = 'svg'
plt.plot(...)
Run Code Online (Sandbox Code Playgroud)

这将导致所有图像在笔记本内部以及生成的ipynb文件中以svg格式显示; 该文件将有一行像

"data": {  "image/svg+xml": [  "<?xml  .....
Run Code Online (Sandbox Code Playgroud)

在里面.

问题是,如果使用%matplotlib notebook后端,这不起作用.%config InlineBackend不会更改笔记本后端的任何内容,因此输出文件包含PNG图像

"data": { "text/html": [  "<img src=\"data:image/png;base64,iVBORw0....
Run Code Online (Sandbox Code Playgroud)

所以问题是:如何让ipynb文件包含使用%matplotlib notebook后端创建的SVG图像的静态版本?

@mark jay从一个月前发表了一个小评论,他想做我现在想做的事情,但没有回答或暗示这个评论.

在我的代码中,我直接从数据框绘制:

%matplotlib notebook
import pandas as pd
df = pd.read_sql(sql1, connection)
...
...
df.plot(subplots=True, kind='bar')
Run Code Online (Sandbox Code Playgroud)

这个功能非常好,无需导入,matplotlib.pyplot但也无法强制将图形创建为svg.我想如果基本情况可行,我可以修改绘图代码,因此它不涉及pandas或数据帧.

python matplotlib pandas jupyter-notebook

10
推荐指数
1
解决办法
1265
查看次数

标签 统计

jupyter-notebook ×1

matplotlib ×1

pandas ×1

python ×1