web-dev-qa-db-ja.com

背景を透明にしてmatplotlibからプロットをエクスポートする方法は?

Matplotlibを使用していくつかのグラフを作成していますが、残念ながら白い背景なしではエクスポートできません。

sample plot with solid white background

言い換えると、このようなプロットをエクスポートして別の画像の上に配置すると、白い背景が透けて見えるのではなく、背後にあるものを隠します。代わりに透明な背景を持つプロットをエクスポートするにはどうすればよいですか?

86
Cupitor

Matplotlib savefig関数とキーワード引数transparent=Trueを使用して、画像をpngファイルとして保存します。

In [30]: x = np.linspace(0,6,31)

In [31]: y = np.exp(-0.5*x) * np.sin(x)

In [32]: plot(x, y, 'bo-')
Out[32]: [<matplotlib.lines.Line2D at 0x3f29750>]            

In [33]: savefig('demo.png', transparent=True)

結果: demo.png

もちろん、そのプロットは透明性を示していません。 ImageMagick displayコマンドを使用して表示されたPNGファイルのスクリーンショットを次に示します。チェッカーボードパターンは、PNGファイルの透明部分を通して見える背景です。

display screenshot

142

PNGファイルは透明度を処理できます。したがって、この質問を使用できます Matplotlibを使用してプロットを画像ファイルに保存するのではなく、画像ファイルに保存します グラフをpngファイルとして保存します。

そして、すべての白いピクセルを透明にしたい場合、この他の質問があります: PILを使用してすべての白いピクセルを透明にしますか?

エリア全体を透明にしたい場合は、この質問があります:そして、この質問のようにPILライブラリを使用します Python PIL:PNGでエリアを透明にする方法? グラフを作成するトランスペアレント。

3