如何从表格中添加图形周围的置信区域

如何从表格中添加图形周围的置信区域

我想在图表上方和下方绘制置信区域,如下所示:

在此处输入图片描述

(来自https://towardsdatascience.com/recreating-netflixs-quantile-bootstrapping-in-r-a4739a69adb6

我不太清楚如何在 pgfplots 中做到这一点?

让我们说一些开始工作的最少代码:

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\usepackage{filecontents}
    \begin{filecontents*}{data.txt}
        X   Y       CI95
        1   1.50    0.39
        2   1.05    0.21
        3   0.50    0.14
        4   0.20    0.05
        5   0.35    0.35
    \end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
]
\addplot [] table [x=X, y=Y]{data.txt};
\addplot [] table [x=X, y=CI95]{data.txt};
\end{axis}
\end{tikzpicture}
\end{document}

(这些数字与博客文章中描绘的图表不符,但概念相似,即有y-值和ci 95%值)

编辑:偶然发现https://pgfplots.net/error-intervals/ 也许有用?

在此处输入图片描述

这看起来也相关:Pgfplots \closedcycle 引入了不必要的斜率

在此处输入图片描述

答案1

弄清楚了 :)

基本上,我们用来y expr在线上方和下方绘制置信限度。我们使用新fillbetween包来填充这些线之间的区域。

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\usepackage{filecontents}
    \begin{filecontents*}{data.txt}
        X   Y       CI95
        1   1.50    0.39
        2   1.05    0.21
        3   0.50    0.14
        4   0.20    0.05
        5   0.35    0.35
    \end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
]
\addplot [name path=lower, fill=none, draw=none] table [
    x=X, y expr=\thisrow{Y} - \thisrow{CI95}]{data.txt};
\addplot [name path=upper, fill=none, draw=none] table [
    x=X, y expr=\thisrow{Y} + \thisrow{CI95}]{data.txt};
\addplot[green!40] fill between[of=lower and upper];
\addplot [] table [x=X, y=Y]{data.txt};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

请注意,也可以使用例如 使置信区域透明fill opacity=0.2。这样您就可以拥有多个重叠的线和 CI 区域,并且重叠的 CI 区域比非重叠的位略暗。

相关内容