2015-08-03 81 views
0

我想繪製一組不同顏色的錯誤欄。我的數據點也有不同的顏色。Matplotlib錯誤欄使用for循環(用於不同的顏色)

目前我使用:

colours = ['r','b','g','k','m'] 
labels = ['200Mpc','300Mpc','340Mpc','400Mpc','450Mpc'] 

fig2 = plt.figure(figsize=(7,5)) 
ax3 = fig2.add_subplot(111) 
for a,b,c,d,e,f in zip(r0_array,gamma_array,r0_error,gamma_error,colours,labels): 
    ax3.scatter(r0_array,gamma_array,c=e,label=f) 
    ax3.errorbar(r0_array,gamma_array,xerr=c,yerr=d,fmt='o',color=e) 
ax3.set_xlabel('$r_{0}$',fontsize=14) 
ax3.set_ylabel(r'$\gamma$',fontsize=14) 
ax3.legend(loc='best') 
fig2.show() 

導致與errorbars和色彩的人物被overplotted。

enter image description here

我可以看到for循環再次被運行5次,因爲我可以看到所有的顏色,但我不明白爲什麼會這樣!

回答

0

我想出了我做的非常愚蠢的錯誤!

for循環,每一個值,即A,B,C,d,E,F取的值內的陣列r0_array,gamma_array等後..

而不是調用在scattera,b,c,d的,我我每次都調用整個數組r0_array, gamma_array,etc..

for a,b,c,d,e,f in zip(r0_array,gamma_array,r0_error,gamma_error,colours,labels): 
     ax3.scatter(a,b,color=e,label=f) 
     ax3.errorbar(a,b,xerr=c,yerr=d,fmt='o') 

固定的問題。