2016-04-08 27 views
0

我正在製作一個相對簡單的圖表,似乎工作正常。我有許多線段,每個線段都定義了一個區域。我正在使用plot.Polygonax.add_patch填充區域使用多邊形。Matplotlib savefig pdf不顯示一些多邊形

當我保存到.png,一切工作正常。所以,我轉向PDF來獲得最終圖像。我手動設置的東西,如fontsize,figsizedpi,所以應該沒有問題。

不幸的是,當前圖片中的四個Polygons中有兩個不顯示在pdf中。這很奇怪;前兩個圖像(其他數據集)的確行爲正確。我在Polygons上玩過zorderalpha,但無濟於事。

我的谷歌搜索沒有任何東西;它提到dpi是不同的,如果你沒有手動設置,但這是沒有問題的。除此之外,我無法找到明確的理由。

衷心感謝, Daimonie

+0

昨天有一個類似的問題:http://stackoverflow.com/questions/36467770/main-axis-are-not-shown-when-using-grid/36468328?noredirect=1#comment60549858_36468328;這是其他一些模塊干擾pdf的生成。看看,也許你想構建一個最小的例子,然後添加一個功能,以找出什麼打破輸出? –

+0

這個問題似乎並不相似(對我來說),因爲他的問題不同。我懷疑另一個模塊是干擾 - 部分是因爲其他圖像工作,部分原因是我只使用'numpy'和''matplotlib''。我會試着看看我能否生成一個最簡單的例子。 – Daimonie

回答

0

好了,我已經找到了問題。

爲了清楚起見,我們首先表示我用來添加多邊形的方法。定義頂點的點$(x,y)$稱爲vertices

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

接下來,我將它添加到圖中:

ax.add_patch(first_polygon) 

那麼,爲什麼不把它顯示一些多邊形的多邊形制成?我無法確定原因,但是當我重新定義多邊形時,問題得以解決。沒有顯示的兩個多邊形被三條線綁定。第一個多邊形由y0, y1, y2和圖的「框架」綁定。因爲我還在縮放這個數字,所以我已經把這個「框架」限定爲$(100,-100)$。當我將其更改爲$(min_x,min_y)$時,它突然顯示正確。

+0

接下來的五張圖片,使用使用''min_x,min_y''的腳本,我沒有更多的問題。 – Daimonie