透明な楕円体を含む一部のプロットを .ps/.eps 拡張子で保存しようとすると、問題が発生します。
以下は .png として保存されたプロットです。
.ps/.eps として保存すると、次のようになります。
これを回避するには、ImageMagick を使用して元の png を ps に変換します。唯一の問題は、png 形式の画像が約 90k で、変換後に 4M 未満になることです。このような画像はたくさんあるので、これは良くありません。LaTeX ドキュメントをコンパイルするのに時間がかかりすぎます。誰かこの問題を解決できる人はいませんか?
ベストアンサー1
問題は、eps
透明度をネイティブにサポートしていないことです。
いくつかのオプションがあります:
画像をラスタライズして eps ファイルに埋め込む (@Molly が提案しているように) か、pdf にエクスポートして外部ツール (gs など) で変換する (通常はこれもラスタライズに依存します)
透明度を「模倣」し、特定の背景に透明な色のような色を与えます。
私はこれについて議論した一度matplotlibメーリングリストに参加すれば、ラスタライズするように提案されましたが、ピクセル化されるか、図が巨大化するため実行可能ではありません。また、出版物などに載せる場合、あまりきれいに拡大縮小されません。
私は個人的に2番目のアプローチを使用していますが、理想的ではないものの、十分だと思いました。私は小さなPython スクリプトアルゴリズムを実装するこのSOの投稿与えられた透明度を持つ色のRGB表現を得る
編集
プロットの特定のケースでは、zorder
キーワードを使用してプロットされた部分を順序付けてみてください。zorder=10
青い楕円には 、zorder=11
緑のビンには 、zorder=12
六角形のビンには を使用してください。
この方法では、青がすべての下に配置され、次に緑の楕円、最後に六角形のビンが配置されます。また、プロットは単色でも読みやすくなります。PNG の青と緑の色合いが気に入ったら、 で試してみてくださいmimic_alpha.py
。
編集2
もしあなたが100%確信しているなら持っているeps を使用する場合、私の頭に浮かぶ回避策がいくつかあります (そして、それは間違いなくあなたのプロットよりも醜いです):
- 六角形のビンの上に楕円の境界線を描くだけです。
- 各六角形の中心と振幅を取得し(ゼロのビンはすべて破棄することも可能)、散布図と同じカラーマップを使用し
hexbin
、マーカーのサイズと形状を好みに合わせて調整します。その上に楕円の境界線を再描画することもできます。