gpt4 book ai didi

python - 在 ipynb 中将来自 %matplotlib notebook 后端的输出作为 SVG 包含在内

转载 作者:太空狗 更新时间:2023-10-29 19:28:27 32 4
gpt4 key购买 nike

This几年前的回答展示了如何让 jupyter notebook 将图形创建为 svg。解决方案是告诉 InlineBackend 使用 svg 作为输出。

import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format = 'svg'
plt.plot(...)

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

"data": {  "image/svg+xml": [  "<?xml  .....

在里面。

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

"data": { "text/html": [  "<img src=\"data:image/png;base64,iVBORw0....

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

@mark jay有小评论从一个月前开始,谁想做我现在想做的事情,但没有任何答案或提示。

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

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

无需导入 matplotlib.pyplot 即可完美运行,但也无法强制将图形创建为 svg。我想如果基本情况可行,我可以修改绘图代码,使其不涉及 pandas 或数据帧。

最佳答案

由于显然即使在赏金期之后也没有人能够提供解决方案,因此解决方法可能如下。

  1. 使用 %matplotlib notebook 创建你的笔记本。对结果满意后,将其保存。
  2. 使用它的副本并将 %matplotlib notebook 替换为

    %matplotlib inline
    %config InlineBackend.figure_format = 'svg'

    重新运行完整的笔记本。保存结果。

  3. 在文本编辑器中打开生成的 ipynb 文件,并将前两行再次替换为 %matplotlib notebook

最终结果将是带有 svg 图像的 ipynb。但是一旦打开并运行,它将使用笔记本后端进行图形创建。

关于python - 在 ipynb 中将来自 %matplotlib notebook 后端的输出作为 SVG 包含在内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45466947/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com