Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 置信区间不显示在条形图上_Python_Pandas_Dataframe_Matplotlib_Seaborn - Fatal编程技术网

Python 置信区间不显示在条形图上

Python 置信区间不显示在条形图上,python,pandas,dataframe,matplotlib,seaborn,Python,Pandas,Dataframe,Matplotlib,Seaborn,我想显示绘图中每个条的置信区间,但它们似乎没有显示出来。我有两个数据帧,我正在显示两个数据帧中绘图中NUMBER\u GIRLS列的平均值 例如,考虑两个数据框(如下所示)。< /P> schools\u north\u df schools\u south\u df 因此,我使用这段代码(如下所示)绘制条形图,每个条形图显示置信区间——但在绘制时,置信区间不会显示 import matplotlib.pyplot as plt objects = ('North', 'South')

我想显示绘图中每个条的置信区间,但它们似乎没有显示出来。我有两个数据帧,我正在显示两个数据帧中绘图中
NUMBER\u GIRLS
列的平均值

例如,考虑两个数据框(如下所示)。< /P>

  • schools\u north\u df
  • schools\u south\u df
因此,我使用这段代码(如下所示)绘制条形图,每个条形图显示置信区间——但在绘制时,置信区间不会显示

import matplotlib.pyplot as plt

objects = ('North', 'South')
y_pos = np.arange(len(objects))
avg_girls = [schools_north_df[NUMBER_GIRLS].mean(), schools_south_df[NUMBER_GIRLS].mean()]

sns.barplot(y_pos, avg_girls, ci=95)
plt.xticks(y_pos, objects)
plt.title('Average Number of Girls')

plt.show()
如果有人能帮助我,并指出我的代码有什么问题。我真的需要在条形图上显示置信区间


多谢各位

如果您希望seaborn显示置信区间,您需要让seaborn自己聚合数据(也就是说,提供原始数据,而不是自己计算平均值)

我将创建一个带有额外列(
region
)的新数据框,以指示数据是来自“北方”还是“南方”,然后请求seaborn绘制
NUMBER\u GIRLS
vs
region

df=pd.concat([schools\u north\u df.assign(region='north')、schools\u south\u df.assign(region='south'))
输出:

绘图:

sns.barplot(数据=df,x='region',y='NUMBER\u GIRLS',ci=95)

如果希望seaborn显示置信区间,则需要让seaborn自行聚合数据(也就是说,提供原始数据,而不是自己计算平均值)

我将创建一个带有额外列(
region
)的新数据框,以指示数据是来自“北方”还是“南方”,然后请求seaborn绘制
NUMBER\u GIRLS
vs
region

df=pd.concat([schools\u north\u df.assign(region='north')、schools\u south\u df.assign(region='south'))
输出:

绘图:

sns.barplot(数据=df,x='region',y='NUMBER\u GIRLS',ci=95)

非常感谢。非常感谢。
ID     NAME     NUMBER_GIRLS
----------------------------
1     SCHOOL_1       56
2     SCHOOL_2       33
3     SCHOOL_3       34
import matplotlib.pyplot as plt

objects = ('North', 'South')
y_pos = np.arange(len(objects))
avg_girls = [schools_north_df[NUMBER_GIRLS].mean(), schools_south_df[NUMBER_GIRLS].mean()]

sns.barplot(y_pos, avg_girls, ci=95)
plt.xticks(y_pos, objects)
plt.title('Average Number of Girls')

plt.show()
  ID      NAME  NUMBER_GIRLS region
0   1  SCHOOL_1            32  North
1   2  SCHOOL_2            12  North
2   3  SCHOOL_3            26  North
0   1  SCHOOL_1            56  South
1   2  SCHOOL_2            33  South
2   3  SCHOOL_3            34  South