2016-04-08 8 views
0

私は、うまく動作するように見える比較的単純なプロットを作っています。私は、いくつかの線分を持ち、それぞれが領域を定義しています。私はplot.Polygonax.add_patchを使って塗りつぶし領域にポリゴンを使っています。Matplotlib savefig pdfでポリゴンが表示されない

.pngに保存すると、すべて正常に動作します。だから、私は最終的なイメージのためのpdfに向ける。私は手動でfontsizefigsizedpiのようなものを設定しているので問題はありません。

悲しいことに、現在の画像にあるPolygonsの4個のうち2個はpdfに表示されません。どちらが奇妙ですか?以前の2つの画像(他のデータセット)は正しく動作しました。私はPolygonszorderalphaでちょっと遊んだけど役に立たなかった。

Google検索で何も表示されませんでした。手動で設定していない場合はdpiが異なっていますが、これは問題ありません。それを超えて、私は明確な理由を見つけることができませんでした。

心からの感謝、

+0

昨日幾分類似した質問がありました:http://stackoverflow.com/questions/36467770/main-axis-are-not-shown-when-using-grid/36468328?noredirect=1#comment60549858_36468328;それはpdfの世代を妨げるいくつかの他のモジュールでした。見てみましょう。多分最小限の例を作ってから、一度に1つのフィーチャーを追加して、何が出力を壊すかを調べることができますか? –

+0

その質問は彼の問題が異なるので(私に)似ていないように見えます。 '' numpy''と '' matplotlib''のみを使用しているため、他のモジュールが干渉していると疑いがあります。私は最小限の例を生成できるかどうかを調べるつもりです。 – Daimonie

答えて

0

わかりましDaimonieので、私は問題を発見しました。

まず、分かりやすくするために、ポリゴンを追加する方法を示しましょう。頂点を定義する点$(x、y)$は、verticesと呼ばれます。ポリゴンが行われる。

first_polygon = plt.Polygon(vertices, zorder=.1, facecolor=colours[colour_index], alpha=fill_opacity) 

次に、私は数字に追加します。

ax.add_patch(first_polygon) 

、なぜそれはいくつかのポリゴンが表示されませんでしたか?理由はわかりませんが、ポリゴンを再定義すると問題は解決しました。表示されなかった2つのポリゴンは3行で区切られていました。最初のポリゴンはy0, y1, y2と図の 'フレーム'に拘束されていました。私はまだ数字をスケーリングしていたので、私はそれを 'フレーム'に束縛するポイントを$(100、-100)$としました。私が$(min_x、min_y)$に変更したら、突然正しく表示されました。

+0

"min_x、min_y''を使ったスクリプトを使って次の5枚の画像を表示しましたが、これ以上問題はありませんでした。 – Daimonie

関連する問題