2012-12-11 17 views
7

matplotlib में छोटी पैच ऑब्जेक्ट्स की साजिश करते समय, डिस्प्ले रेज़ोल्यूशन के कारण कलाकृतियों को पेश किया जाता है। एंटी-एलाइजिंग का उपयोग समस्या को हल नहीं करता है।matplotlib पैच प्लॉटिंग में कलाकृतियों

क्या इस समस्या का समाधान है?

import matplotlib.pyplot as plt 
import matplotlib.patches as patches 

ax = plt.axes() 

for x in range(-10,11): 
    for y in range(-10,11): 
     rect = patches.Rectangle((x, y), width=0.1, height=0.1, color='k',aa=True) 
     ax.add_patch(rect) 

plt.xlim([-30, 30]) 
plt.ylim([-30, 30]) 
plt.show() 

output

+1

मुझे यह समस्या भी मिली है। यह आपके इंटरैक्टिव सत्र में मदद नहीं करता है, लेकिन यदि आप छवि को वेक्टरकृत प्रारूप में सहेजते हैं तो यह क्या है इसके लिए 'plt.save ("a.pdf")' परिणामी पीडीएफ एक ही कलाकृतियों से ग्रस्त नहीं है। – Hooked

+0

'ec =' none'' 'को सेट करने से थोड़ा मदद मिल सकती है:' rect = patches.Rectangle ((x, y), width = 1, height = 1, color = 'k', ec = 'none') ' –

+0

मैं इस समस्या को पुन: उत्पन्न नहीं कर सका। ओएस एक्स पर matplotlib 1.1.1 के साथ पीएनजी और जेपीजी के रूप में सहेजा गया, और परिणाम ठीक था। – tiago

उत्तर

3

धन्यवाद समस्या का एक सरल उदाहरण एक साथ डालने के लिए - यह वास्तव में यह बहुत आसान है की जांच कर रही है!

क्या इस समस्या का समाधान है?

हाँ, यह पता चला है! मेरा प्रारंभिक अनुमान, केवल आपके द्वारा संलग्न छवि को देखकर, यह था कि कुछ अजीब क्लिपिंग/स्नैपिंग चल रही है। एंटीअलाइजिंग संभावना से बाहर निकलने के बाद (आपके द्वारा प्रदान किए गए स्विच को फिसलने से) मेरा परीक्षण का एकमात्र अन्य एवेन्यू "स्नैप" कीवर्ड को झूठा सेट करना था (स्नैप विधि पर बहुत सीमित दस्तावेज़ों के लिए http://matplotlib.org/api/artist_api.html#matplotlib.artist.Artist.set_snap देखें)।

स्नैप स्थापना काम कर देता है और आप अपेक्षित परिणाम के साथ समाप्त:

import matplotlib.pyplot as plt 
import matplotlib.patches as patches 

ax = plt.axes() 

for x in range(-10,11): 
    for y in range(-10,11): 
     rect = patches.Rectangle((x, y), width=0.1, height=0.1, 
           color='k', snap=False) 
     ax.add_patch(rect) 

plt.xlim([-30, 30]) 
plt.ylim([-30, 30]) 
plt.show() 

एक दृश्य तुलना (शायद सबसे अच्छा एक नई विंडो में छवि को खोलने के रूप में आपके ब्राउज़र शायद छवि को मापना और आगे का परिचय देंगे दृश्य प्रभाव):

comparison of the snap property

मैं एमपीएल में है और इस पर कि क्या तस्वीर संपत्ति के बारे में विशेष रूप से जानकार नहीं हूँ वास्तव में वांछनीय व्यवहार है, इसलिए मैं एमपीएल-devel पर एक प्रश्न पोस्ट करेंगे इस प्रश्न के बारे में बातचीत खोलने के लिए मेलिंग सूची। उम्मीद है कि इस जवाब में आप इस दौरान मदद करेंगे।

संबंधित मुद्दे