1. ホーム
  2. python

[解決済み] scipy: savefigからフレーム、軸を取り除き、内容のみを表示する。

2022-12-07 11:37:49

質問

numpy/scipyで、配列に格納された画像を持っています。私はそれを表示することができます、私はそれを使用して保存したいと思います。 savefig を使わずに ボーダー、軸、ラベル、タイトル、...。純粋な画像だけで、他には何もありません。

のようなパッケージは避けたい。 PyPNG または scipy.misc.imsave を使用すると、時々問題が発生します(常にうまくインストールされるとは限らず、基本的な savefig() を使用します。

どのように解決するのですか?

編集

変更された aspect='normalaspect='auto' というのは、最近の matplotlib のバージョンで変更されたからです (@Luke19 に感謝します)。


仮定すると.

import matplotlib.pyplot as plt

枠のない図形を作るには.

fig = plt.figure(frameon=False)
fig.set_size_inches(w,h)

コンテンツを図いっぱいに表示させるには

ax = plt.Axes(fig, [0., 0., 1., 1.])
ax.set_axis_off()
fig.add_axes(ax)

そして、その上に画像を描きます。

ax.imshow(your_image, aspect='auto')
fig.savefig(fname, dpi)

aspect で指定された図形の大きさを満たすようにピクセルサイズを変更します。 fig.set_size_inches(…) . この種のものの遊び方の感触を得るには、以下のものを読んでください。 matplotlibのドキュメント 特に Axes, Axis and Artist の主題について。