eps
形式で保存したときに透明度を処理できるように図形をラスタライズするには通常ax.set_rasterized(True)
を使用しますが、ラスタライズでは軸ラベルとティックラベルもぼやけますので、全体ではなく軸内のパッチのみをラスタライズする方法があります数字?透明性を備えたeps形式をエクスポートするのに適していますか?ありがとう。 matplotlibのArtistsとしてmatplotlibのラベルをぼかさずにプロットをラスタライズするにはどうすればいいですか?
6
A
答えて
7
は、アーティスト(http://matplotlib.sourceforge.net/api/artist_api.html)に由来する任意のクラスがTrue
にキーワードrasterized
セットでラスタライズすることができ、ラスタライズすることができます。パッチをラスタライズするだけです。
私はいくつかの組み合わせを試したところ、うまくいくようです。しかし、品質はあまり良くないようです(http://www.mail-archive.com/[email protected]/msg13276.htmlも参照してください)。
import numpy as np
import matplotlib.pyplot as plt
def add_patch(ax, **kwargs):
if 'rasterized' in kwargs and kwargs['rasterized']:
ax.set_rasterization_zorder(0)
ax.fill_between(np.arange(1, 10), 1, 2, zorder=-1, **kwargs)
ax.set_xlim(0, 10)
ax.set_ylim(0, 3)
if 'alpha' in kwargs and kwargs['alpha'] < 1:
txt = 'This patch is transparent!'
else:
txt = 'This patch is not transparent!'
ax.text(5, 1.5, txt, ha='center', va='center', fontsize=25, zorder=-2,
rasterized=True)
fig, axes = plt.subplots(nrows=4, sharex=True)
add_patch(axes[0], alpha=0.2, rasterized=False)
add_patch(axes[1], alpha=0.2, rasterized=True)
add_patch(axes[2], rasterized=False)
add_patch(axes[3], rasterized=True)
plt.tight_layout()
plt.savefig('rasterized_transparency.eps')
私は、ブラウザでそれを表示するためにPNGにeps
を変換:
も参照してください:How to save figures to pdf as raster images in matplotlib。
+0
ありがとう、私はあなたの例を試し、私自身のコードでできるだけ早くテストします。答えはそれまでに受け入れられます;-)。 – nye17
2
dpiを指定した方が良い結果が得られます。デフォルト値はかなり低いと思われます。たとえば、最後の行を
plt.savefig('rasterized_transparency.eps',dpi=200)
に変更すると、ファイルは4.5Mに拡大し、Acrobatでは最大200%の倍率で表示されます。しかし、私は透明性をサポートするよりコンパクトなフォーマットがおそらく存在することに同意します。
関連する問題
- 1. matplotlibの軸の内容をラスタライズする(フレーム、ラベルではない)
- 2. matplotlibでgnuplotの 'impulses'のようなスタイルをプロットするにはどうすればいいですか?
- 3. matplotlibの燭台の上のぼかしを取り除くにはどうすればいいですか?
- 4. 透明な背景を持つmatplotlibからプロットをエクスポートするにはどうすればいいですか?
- 5. python pandasでmatplotlibを使って2つのグラフをプロットするにはどうすればいいですか?
- 6. matplotlibを使ってローソク足チャートをプロットするにはどうすればいいですか?
- 7. multipart seabornプロットでmatplotlib gridspecを繰り返し挿入するにはどうすればいいですか?
- 8. (matplotlibの)プロットからサブセットを拡大するにはどうすればよいですか?
- 9. Python/Matplotlib - 循環ヒストグラムの上にベクトルの合計をプロットするにはどうすればよいですか?
- 10. 図形に名前やラベルをプロットして追加するにはどうすればいいですか?
- 11. MATLAB:カスタムティックとラベルをimagescプロットに追加するにはどうすればいいですか?
- 12. matplotlibに複数の関数をプロットするにはどうすればよいですか?
- 13. matplotlibナビゲーションツールからギリシャシンボルを軸ラベルとして追加するにはどうすればよいですか?
- 14. Matplotlib:凡例なしで特定の曲線をプロットするにはどうすればよいですか?
- 15. matplotlibプロットを「塗りつぶし」に設定するにはどうすればよいですか?
- 16. Matplotlibでステップ関数をPythonでプロットするにはどうすればよいですか?
- 17. matplotlibのimshowプロットのデータ表示形式を変更するにはどうすればよいですか?
- 18. matplotlib 3Dプロットの軸の色を変更するにはどうすればよいですか?
- 19. PythonとMatplotlib:ブートストラップヒストグラムプロットの範囲をプロットするにはどうすればよいですか?
- 20. matplotlibを使用して非線形モデルをプロットするにはどうすればよいですか?
- 21. リンゴウォッチにラベルを表示するにはどうすればいいですか?
- 22. フォームにラベルを追加するにはどうすればいいですか?
- 23. タイマーをラベルに接続するにはどうすればいいですか?
- 24. h:selectOneListboxにラベルを設定するにはどうすればいいですか?
- 25. ラベルをマーキーにするにはどうすればいいですか?
- 26. フォームビルダにラベルを追加するにはどうすればいいですか?
- 27. matplotlibでKmeansテキストクラスタリング結果をプロットするにはどうすればよいですか?
- 28. matplotlibでプロットを再利用するにはどうすればよいですか?
- 29. matplotlibスライドショーを作成するにはどうすればいいですか?
- 30. 背景画像をぼかすにはどうすればよいですか?
私はちょうどset_zorderとset_rasterization_zorderを発見した、私は彼らが役に立つと思うが、まだドキュメントを掘って、まだどんな助けにも感謝します。 – nye17
'pdf'を使用できませんか?ラスタライズせずに透明性を維持します。 – Avaris
@Avaris残念ながら私はpdfを使用することはできませんが、epsに固執しなければならないので、ラスタライズは唯一の方法です。 – nye17