熊猫和matplotlib的置信区间为95%

时间:2019-02-20 09:37:41

标签: python pandas matplotlib

我不知道为什么要花这么长时间才能弄清楚,但是我找不到找到绘制数据置信区间误差线的方法。

我在Python列表中有一些数据。

我从另一个问题中找到了这段代码,用于计算某些数据的95%置信区间。

def mean_confidence_interval(data, confidence=0.95):
    a = 1.0 * np.array(data)
    n = len(a)
    m, se = np.mean(a), scipy.stats.sem(a)
    h = se * scipy.stats.t.ppf((1 + confidence) / 2., n-1)
    return m, m-h, m+h

我正在使用它来获取条形图中一个条形的置信区间。问题是既然在这里有三元组,如何绘制误差线?我是否只在每格这些值中绘制max

编辑

我尝试实施评论中建议的内容。假设我的图表中有3条,然后创建了一个2X3列表,该列表在第一行的每一行的m-h值和第二行的每一行的m+h值。但是,将其提供给图表会产生一些奇怪的误差线(例如,一个误差线跨度超过500,尽管我的误差值不大)。

[[200.0446804785922, 109.31657288869792, 93.43052190866868], 
[200.0957195214078, 222.0113671113021, 217.6619980913313]]

1 个答案:

答案 0 :(得分:0)

使用Seaborn和Pandas,这真的很容易:

import pandas as pd
import seaborn as sns

pd_df = pd.DataFrame(your_list, columns=['x_data', 'y_data', 'group_categories'])
sns.lineplot(data=pd_df, 
             x='x_data', y='y_data', hue='group_categories', ci=95,
             legend="full", palette="Set1")