2013-07-07 22 views
5

Matplotlib'in stacked=True ile hist işlevini kullanarak çizilen histogramın rengini ve stil stilini denetleme konusunda sorun yaşıyorum. olmayan tek bir yığılmış histogram için, ben hiçbir sorun vardır:Matplotlib yığılmış histogram için facecolor kwarg

Ben ek histogramlar tanıtmak Ancak
import pylab as P 

mu, sigma = 200, 25 
x0 = mu + sigma*P.randn(10000) 

n, bins, patches = P.hist(
    x0, 20, 
    histtype='stepfilled', 
    facecolor='lightblue' 
    ) 

,

import pylab as P 

mu, sigma = 200, 25 
x0 = mu + sigma*P.randn(10000) 
x1 = mu + sigma*P.randn(7000) 
x2 = mu + sigma*P.randn(3000) 

n, bins, patches = P.hist(
    [x0,x1,x2], 20, 
    histtype='stepfilled', 
    stacked=True, 
    facecolor=['lightblue','lightgreen','crimson'] 
    ) 

aşağıdaki hata atıyor: Kullanılması

ValueError: to_rgba: Invalid rgba arg "['lightblue', 'lightgreen', 'crimson']" 
could not convert string to float: lightblue 

color=['lightblue', 'lightgreen', 'crimson'] seçeneği işe yarar, ancak adlandırılmış Matplotlib renklerini kullanabilmekteyken dolgu ve çizgi renklerini ayrı ayrı doğrudan kontrol etmek istiyorum. Matplotlib'nin 1.2.1 sürümünü kullanıyorum.

cevap

3

facecolor tek adlandırılmış bir renk değil, bir liste, ama olması gerekir ekleyerek bu sizin P.hist kullanım iş senin için halletmek olabilir sonra: çalışma yaptı, ama yapacak bir yolu yoktur

for patch in patches[0]: patch.set_facecolor('lightblue') 
for patch in patches[1]: patch.set_facecolor('lightgreen') 
for patch in patches[2]: patch.set_facecolor('crimson') 
+1

Bu histle inline? – xvtk