SymPy で作成したグラフの部分だけをファイルとして保存する

SymPy の準備

Notebook 上のグラフの表示を svg にしています。

In [1]:
from sympy import *
from sympy.abc import *
from sympy import I, pi, E
from IPython.display import set_matplotlib_formats
%matplotlib inline
set_matplotlib_formats('svg')

保存したいグラフに名前をつける

ファイルとして保存したいグラフに名前をつける。以下では p1 という名前をつけている。

In [2]:
p1 = plot(sin(x), (x, -2*pi, 2*pi))



2022-01-14T10:14:09.657399 image/svg+xml Matplotlib v3.3.4, https://matplotlib.org/

最も簡単に png で保存する

以下のようにすると,簡単にグラフを png で保存できますが,デフォルトの解像度がショぼいので,綺麗なグラフには見えません。

In [3]:
p1.save('./p1.png')



2022-01-12T11:26:28.697012 image/svg+xml Matplotlib v3.3.4, https://matplotlib.org/

解像度を変更して,こぎれいな png で保存する

以下のようにして figure.dpi300 程度に指定します。

In [4]:
import matplotlib.pyplot as plt
plt.rcParams['figure.dpi'] = 300

# これ以降は dpi=300 で解像度の高い画像ファイルとして保存される
In [5]:
p1.save('./p1-300.png')



2022-01-12T11:26:38.910068 image/svg+xml Matplotlib v3.3.4, https://matplotlib.org/

JupyterHub のホームから p1.pngp1-300.png をダウンロードして解像度を比べてみてください。高い解像度の画像は拡大しても綺麗です。

直接 pdf としては保存できない

以下のように,p1.save() で直接 pdf として保存できないか試してみると,エラーでうまくいきません。

In [ ]:
p1.save('./aho.pdf')

一旦 svg として保存し,pdf に変換する

In [3]:
p1.save('./p1.svg')



2022-01-14T10:14:20.970315 image/svg+xml Matplotlib v3.3.4, https://matplotlib.org/

弘大 JupyterHub では rsvg-convert コマンドが使えます。

sudo apt install librsvg2-bin 済みです。

In [7]:
%%bash
rsvg-convert -f pdf -o p1.pdf p1.svg

上記のセルを実行後は,p1.pdf という pdf ファイルができていますので,これをダウンロードして使うことができます。