2016-04-08 12 views
0

Çalıştığım göreceli olarak basit bir çizim yapıyorum. Bir dizi çizgi bölümüm var ve her biri bir alanı tanımlar. plot.Polygon ve ax.add_patch kullanarak doldurulmuş alanlar için çokgenler kullanıyorum.Matplotlib savefig pdf, bazı çokgenleri görüntülemiyor

.png'ye kaydettiğimde her şey iyi çalışıyor. Böylece, son görüntü için pdf'ye dönüyorum. El ile fontsize, figsize ve dpi gibi şeyleri ayarladım, bu yüzden sorun olmamalı.

Maalesef, mevcut resimde bulunan dört Polygons'dan 2 tanesi pdf'de görüntülenmiyor. Bu garip; Önceki iki görüntü (diğer veri kümeleri) doğru şekilde harekete geçti. Ben Polygons üzerinde zorder ve alpha ile biraz oynadım ama boşuna.

Benim google arama hiçbir şey açmadı; manuel olarak ayarlamadıysanız, dpi farklı olduğunu belirtmiştir, ancak bu sorun değildir. Bunun ötesinde, net sebepler bulamadım.

Benim samimi sayesinde

+0

Dün biraz benzer bir soru vardı: http://stackoverflow.com/questions/36467770/main-axis-are-not-shown-when-using-grid/36468328?noredirect=1#comment60549858_36468328; pdf nesline müdahale eden başka bir modüldü. Bir göz atın, belki de en az bir örnek oluşturmak ve daha sonra çıktıyı ne zaman kırıldığını bulmak için teker teker eklemek istersiniz? –

+0

Bu soru, problemleri farklı olduğu için (bana) benzer görünmüyor. Başka bir modülün karıştığından kuşku duyuyorum - kısmen diğer görüntüler işe yaradı çünkü kısmen sadece “numpy” ve “matplotlib” kullanıyorum. Minimal bir örnek oluşturabilir miyim görmeye çalışacağım. – Daimonie

cevap

0

Tamam Daimonie, bu yüzden sorunu buldum.

İlk olarak, sadece açıklık sağlamak için çokgenleri eklemek için kullandığım yöntemi belirtelim. Köşeleri tanımlayan $ (x, y) $ noktaları vertices olarak adlandırılır.

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

Sonraki, ben rakama ekleyin:

ax.add_patch(first_polygon) 

Öyleyse neden bazı poligonları görüntü vermedi olarak poligon yapılır? Sebebinden emin olamıyorum ama çokgenleri yeniden tanımladığımda sorun çözüldü. Gösterilmeyen iki çokgen, üç çizgi ile sınırlandı. İlk çokgen, y0, y1, y2 ve şeklin 'çerçevesi' ile bağlandı. Ben hala rakamı ölçeklendirdiğim için, onu 'çerçeve' ile bağlayan noktayı $ (100, -100) $ olarak koymuştum. Bunu $ (min_x, min_y) $ olarak değiştirdiğimde, aniden düzgün bir şekilde görüntülendi.

+0

Sonraki beş resim, 'min_x, min_y'' kullanılan betiği kullanarak daha fazla sorun yaşamadım. – Daimonie