2016-04-08 26 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