2

我正在将文件中的数据导入到 pandas DataFrame 中,并且我想用错误栏绘制该数据。这是我的代码:

y = df['PP04-O3N2SNpos log(O/H)+12'] - df['nuclear metallicity']
yerr = np.array([df['negative error!'],df['positive error!']]).T
x = df['NED calculated virgo infall distance in Kpc']

plt.errorbar(x,y,yerr,fmt = 'r^')
plt.xlabel('Distance from center in kpc')
plt.ylabel('PP04-O3N2SNpos log(O/H)+12')
plt.title('Central metallicity vs SN metallicity')
plt.show()

但是,我得到的图表看起来像这样在此处输入图像描述

正如你所看到的,图表上的误差线的格式都是一团糟。我不确定为什么它不像正常的误差线那样绘制,而是随机放置线条。

4

1 回答 1

3

您的问题在于yerr阵列的形状。文档说数组应该是数组Nx12xN数组。你的yerr数组有一个Nx2形状。

用你的第二行替换

# create a 2xN array for the error bars
yerr = np.array([df['negative error!'],df['positive error!']])

你应该没事

于 2015-08-08T20:32:28.310 回答