2013-12-12 15 views
7

Matplotlib pasta grafiğimde satırları daha açık yapmaya çalışıyorum.Matplotlib pasta grafiğinde çizgi özelliklerini değiştirme

enter image description here

böyle rcparam kullanarak önerir this example okuyun::

matplotlib.rcParams['text.color'] = 'r' 
matplotlib.rcParams['lines.linewidth'] = 2 

ama değişmek rağmen bu kadar çok dilim olması nedeniyle burada gösterildiği gibi, çizgiler, yol çok kalın Metin rengi, pasta dilimleri arasındaki çizgilerin genişliğini değiştirmez. İnanıyorum ki, dilimler çizgi nesneler tarafından değil kama nesneler tarafından yönetiliyor. Yani kama sınır stili ve rengini ayarlamak için bir yolu var mı?

Çok teşekkürler, Alex

cevap

11

bu deneyin: Yalnızca bir axes nesne varsa, Ek

ax = plt.subplot(111) 
wedges, texts = ax.pie(np.abs(np.random.randn(5))) 

for w in wedges: 
    w.set_linewidth(2) 
    w.set_edgecolor('cyan') 

pie

ve pasta en takozlar doğrudan erişim yok sen takozları, ax.patches:

wedges = [patch for patch in ax.patches if isinstance(patch, matplotlib.patches.Wedge)] 
'dan alabilir.
+0

Ayrıca 'pasta' dediğinizde 'linewidth' ifadesini de girebilirsiniz. – tacaswell

+0

@tcaswell sadece matplotlib '1.3.1'de denedi, işe yaramadı –

+1

Evet, bu garip/doğru değil. Arsa imzalarının çoğunun bir '** kwarg'ı var, ama 'turta' değil. Bugün zamanım varsa bunun hakkında bir şeyler yapabilirim. – tacaswell

5

Im bu partiye geç geliyor ama sadece, pasta grafikleri için, kullanmak yerine bulundu:

plt.rcParams['lines.linewidth'] = 2 

kullanabilirsiniz:

plt.rcParams['patch.linewidth'] = 0 

Ayrıca pasta grafik çizgi rengini değiştirmek için Bu kullanın:

plt.rcParams['patch.edgecolor'] = 'white' 

yerine:

plt.rcParams['line.color'] = 'white' 
+0

üzerinde [issue] (https://github.com/matplotlib/matplotlib/issues/2899) ekledim Temel ihtiyaçlarınız için çok daha sezgisel ve daha kolay, teşekkürler. – Konrad

İlgili konular