我正在尝试可视化一个笔直的线图,在其中我想绘制一列的平均值和标准偏差。默认情况下,这很容易,但是由于我正在处理非常大的文件(数百万行),因此绘图需要一段时间才能加载。
为了最小化seaborn所需的计算时间,我首先计算列的平均值(以及标准差),然后将其馈送到线图,而不是将整个Pandas数据框作为输入。我的代码如下所示:
df = open_pickle("data/experiment")
sns.lineplot(x="rho", y="wait_time_mean", hue="c", style="service_type", data=df)
但是,现在我丢失了有关标准偏差的信息。因此,我想知道是否可以手动为seaborn提供标准偏差的值。
预先感谢
答案 0 :(得分:2)
sns.lineplot
返回图的Axes对象,然后可以在其上进行绘制。假设您的标准差也在df
中,则可以通过以下方式修改代码,该方式现在使用matplotlib函数fill_beetween
:
df = open_pickle("data/experiment")
ax = sns.lineplot(x="rho", y="wait_time_mean", hue="c", style="service_type", data=df)
ax.fill_between(df["rho"], y1=df["wait_time_mean"] - df["wait_time_std"], y2=df["wait_time_mean"] + df["wait_time_std"], alpha=.5)