0

我想绘制一组不同颜色的误差线。我的数据点也有不同的颜色。

目前我正在使用:

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()

这会导致错误条和颜色被过度绘制的图形。

在此处输入图像描述

我可以看到for循环再次运行了 5 次,因为我可以看到所有颜色,但我不明白为什么会这样!

4

1 回答 1

0

我发现我犯了一个非常愚蠢的错误!!

for循环之后,每个值,即 a、b、c、d、e、f 取数组 r0_array、gamma_array 等内的值。

我每次都调用整个数组,而不是调用a,b,c,and din 。scatterr0_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')

解决了这个问题。

于 2015-08-03T12:24:40.873 回答