pyplot在seaborn库中的意外行为.错误吗?



我正试图理解pointplot函数(链接到pointplot文档)来绘制错误条。

将'errorbar'参数设置为'sd',应该将标准偏差与平均值一起绘制。但是手工计算标准差会得到一个不同的值。

我使用了文档中提供的示例:

import seaborn as sns
df = sns.load_dataset("penguins")
ax = sns.pointplot(data=df, x="island", y="body_mass_g", errorbar="sd")
data = ax.lines[1].get_ydata()
print(data[1] - data[0]) # prints 248.57843137254895
sd = df[df['island'] == 'Torgersen']['body_mass_g'].std()
print(sd) # prints 445.10794020256765

我期望两个打印值是相同的,因为data[1] - data[0]sd应该等于类别"Torgersen"的变量"body_mass_g"的标准差。sns提供的其他标准差。点图也不像预期的那样。

我一定是错过了什么明显的东西,但我怎么也想不出来。感谢任何帮助。我在本地和google colab中测试了代码,结果相同。

我的电脑有一个过时的版本seaborn(0.11.2),其中参数'errorbar'被命名为'ci'。使用正确的参数可以解决这个问题。奇怪的是,google Colab也使用0.11.2版本,与他们声称他们会自动更新他们的软件包相反。

最新更新