我如何创建以下原始数据图形?

我如何创建以下原始数据图形?

我已经尝试过不同的代码,tikzpicture但是正态分布图尤其让我头疼。

有任何想法吗?

将不胜感激任何帮助!

在此处输入图片描述

这就是我目前所得到的,但我不知道如何整合正态分布......

\documentclass{article}
\usepackage{tikzsymbols}
\usepackage{pgfplots} 
\usepackage{pgfplotstable}

\pgfplotstableread{
X Y
0 2 
1 2.25
2 2.5
3 2.75
4 2
5 2.75
6 3
7 3.25
8 3.5
9 3.75
10 4
}\datatable

\begin{document}
\pgfplotsset{every axis legend/.append style={
        cells={anchor=west}}}

\begin{tikzpicture}
\begin{axis}[legend pos=north west,xmin=0,xmax=10,
ymin=0,ymax=5,enlargelimits=0.1]

\addplot[draw=none,color=red] table [
x=X,
y={create col/linear regression={y=Y}},
] {\datatable};
\xdef\slope{\pgfplotstableregressiona}
\xdef\offset{\pgfplotstableregressionb}
\addplot[no marks,color=red,domain=-2:9] {\slope*x+\offset};
\addlegendentry{$E(Y | x_i)$}
\coordinate (aux1) at (2,{\slope*2+\offset});
\coordinate (aux2) at (2,2.5);
\end{axis}
\end{tikzpicture}
\end{document}

答案1

这里有一个建议:pic为高斯定义一个,并将其放置在您想要的任何位置。

\documentclass{article}
\usepackage{pgfplots} 
\pgfplotsset{compat=1.16}
\usepackage{pgfplotstable}

\pgfplotstableread{
X Y
0 2 
1 2.25
2 2.5
3 2.75
4 2
5 2.75
6 3
7 3.25
8 3.5
9 3.75
10 4
}\datatable
\tikzset{pics/.cd,
Gaussian/.style={code={
\draw[gray] plot[variable=\x,domain=-\GaussDomain:\GaussDomain] ({\GaussHeight*exp(-2*\x*\x/\GaussWidth)},\x);
\draw[gray,dashed] (0,0) -- (\GaussHeight,0);
}}}
\pgfkeys{Gauss width/.store in=\GaussWidth,
Gauss width=0.5,
Gauss height/.store in=\GaussHeight,
Gauss height=0.8,
Gauss domain/.store in=\GaussDomain,
Gauss domain=1.2
}
\begin{document}
\pgfplotsset{every axis legend/.append style={
        cells={anchor=west}}}

\begin{tikzpicture}
\begin{axis}[legend pos=north west,xmin=0,xmax=10,
ymin=0,ymax=5,enlargelimits=0.1]

\addplot[draw=none,color=red] table [
x=X,
y={create col/linear regression={y=Y}},
] {\datatable};
\xdef\slope{\pgfplotstableregressiona}
\xdef\offset{\pgfplotstableregressionb}
\addplot[no marks,color=red,domain=-2:9] {\slope*x+\offset}
coordinate[pos=0.3](p1) coordinate[pos=0.7](p2);
\addlegendentry{$E(Y | x_i)$}
% \coordinate (aux1) at (2,{\slope*2+\offset});
% \coordinate (aux2) at (2,2.5);
\end{axis}
\path foreach \X in {1,2} {(p\X) pic{Gaussian}};
\end{tikzpicture}
\end{document}

您可以通过相应地设置相应的 pgf 键来调整高斯的宽度、高度、域或颜色。

在此处输入图片描述

相关内容