2014-11-21 24 views
1

一直在python和matplotlib模塊中掙扎。我試圖畫出一些沒有填充並用黑色標出的圓圈。我在藝術家圈中提出了正確的論點,但它似乎忽略了它,並把藍色。有任何想法嗎?此外,該圖自動顯示,沒有我說明繪製或顯示。當圖形彈出時,我怎樣才能阻止並控制?提前致謝。Matplotlib補丁不匹配提供的參數。

我的代碼

def draw_lattice(self,chart): 

    patches = [] 
    for x in range(1,4): 
     for y in range (1,4): 
      circle = Circle((x,y), .25,color='k',fill=False) 
    #  chart.add_patch(circle) 
      patches.append(circle) 


    p = PatchCollection(patches) 
    chart.add_collection(p) 

在此先感謝。

* UPDATE *

如果我單獨添加每個圓圈將正確格式化的軸。如果我添加集合它不起作用。我有更多的形狀要添加,我想要去收集路線。任何理由爲什麼一個方法會工作,另一個不會?我在某處讀到你需要添加藝術家,但是我嘗試了這個,並得到了一個錯誤。

回答

1

在創建補丁集合可以設置圓的顏色:

p = PatchCollection(patches,facecolors='w',edgecolor='k') 

Collection documentation

「如果任何edgecolors,facecolors,線寬,antialiaseds都沒有,它們默認到它們的matplotlib.rcParams補丁設置,按順序排列。「

+0

有沒有辦法做透明的facecolors? – TheCodeNovice 2014-11-21 22:29:28

2

這是一個相當晚的答案,但我只是碰到了同樣的問題來了,在這裏是如何解決這個問題:

你需要做的是告訴PatchCollection以匹配原始補丁。要做到這一點,只需添加match_original=True,如下所示:

p = PatchCollection(my_patches, match_original=True)