2010-05-15 18 views
5

ben şöyle errorbars bir çizgi çizmek için Python matplotlib kullanıyorum ile matplotlib kırpılan değil errorbars: yapma Python

plt.errorbar(xvalues, up_densities, yerr=ctl_sds, fmt='-^', lw=1.2, markersize=markersize, 
     markeredgecolor=up_color, color=up_color, label="My label", clip_on=False) 
plt.xticks(xvalues) 

ben "xticks" kullanarak x-ekseni üzerinde kene ayarlayın. Bununla birlikte, xvalues ​​(yani xvalues ​​[-1]) içindeki son noktanın hata çubukları sağa kırpılır - sadece yarım hata çubuğu görüntülenir. Bu, clip_on = False seçeneği ile bile geçerlidir. Bunu nasıl düzeltebilirim, böylece sağ tarafları teknik olarak xvalues ​​[-1] dışında olsa bile hata çubukları dolu görünür?

Teşekkürler.

cevap

10

, detaylı kontrolü çoğu Sanatçılar yoluyla yapılması gerekiyor. Bunun ne istediğini yapması gerektiğini düşünüyorum: Eğer yapıyorduk

import matplotlib.pyplot as plt 
from random import uniform as r 

x = range(10) 
e = plt.errorbar(x, [r(2,10) for i in x], [r(.1,1) for i in x], capsize=8, color='r') 

for b in e[1]: 
    b.set_clip_on(False) 

plt.show() 

enter image description here

sorun clip_on anahtar kelime işaretleri ve hata çubukları kontrol etmek için kullanılıyor olmasıdır. Hata çubuklarını denetlemek için, plt.errorbar, ikinci öğenin bir hata çubukları listesi olduğu bir tuple döndürür. Yani burada listeden geçiyorum ve her bir hata için kırpmayı kapatıyorum.

+0

Çok hoş. Aslında aynı şeyi denedim, ama hiçbir şey görmedim çünkü düzgün bir şekilde yeniden çizilmedim. –

+3

Bunun sadece kapaklar için çalıştığını unutmayın. Çubuk itelf yarısı kesiliyorsa (eksenleri kapattığınız zaman göreceğiniz gibi), aynısını her şeyden önce [2] için de yapmalısınız. – Peter

+0

@Peter: İyi nokta. Teşekkürler. – tom10

1

Bu mu demek istiyorsun? Parselinizin yatay sınırlarını yeniden tanımlamak ister misiniz? matplotlib olarak

plt.errorbar(range(5), [3,2,4,5,1], yerr=[0.1,0.2,0.3,0.4,0.5]) 
ax = plt.gca() 
ax.set_xlim([-0.5,4.5]) 

Matplotlib errorbar http://up.stevetjoa.com/errorbar.png

+0

Hayır, son onay işaretinin 4'te (örneğinizde) ve yatay x ekseninde bitmesini, bunun üzerine hiçbir şey geçmeyecek şekilde olmasını istiyorum. Hata çubuklarının uçlarındaki yatay çizgiler, x ekseninin ucundan biraz geçecek, ancak clip_on = False, görünür olmasa da, bunları görünür hale getirmelidir. Bunu nasıl yapabileceğime dair bir fikrin var mı? – user248237dfsf