pgfplots를 사용하여 특정 그래프를 어떻게 생성합니까?

pgfplots를 사용하여 특정 그래프를 어떻게 생성합니까?

구함

이 그래프나 이와 유사한 그래프를 만들 수 없습니다. 나는 사용한다pgfplots음모를 꾸미기 위해.

답변1

이것은 가능한 솔루션 중 하나입니다 pgfplots. 여기서 내부 레이블은 x\iwhere 를 y\i통해 파란색 선으로만 정의됩니다 . 그런 다음 파란색 선의 점에서 상대적 거리가 있는 수직선이 그려집니다. 거리는 변수를 통해 제공됩니다. 마지막으로 및 라벨을 붙 입니다 .coordinate[pos=xx]0 < xx < 1\h\epsilon_1y_i, \hat y

여기에 이미지 설명을 입력하세요

암호

\documentclass{article}
\usepackage{pgfplots} 
\usetikzlibrary{calc}
\pgfplotsset{compat=1.11}
\pgfplotsset{every axis x label/.style={
  at={(1,0)},  below,  yshift=-5pt},
  every axis y label/.style={ at={(0,1)},
  left,xshift=-5pt}
  }
\begin{document}
\begin{tikzpicture}[scale=1]
\begin{axis}[ymax=5,ymin=0,,xmin=0,xmax=10,
    axis lines=left, xtick=\empty, ytick=\empty,
    ytick={2,4},xlabel=$x$, ylabel=$y$,
    yticklabels={$y_i$, $\hat y_x$},
    xtick={0},
    ]
\addplot+[domain=1:10,mark=none, thick] {1 + 0.25*x} 
\foreach \i/\p in {1/0.2,2/0.4,3/0.6,4/0.8}{
coordinate[pos=\p] (x\i)   % define vertical points for upward direction
}
\foreach \i/\p in {1/0.3,2/0.5,3/0.7,4/0.9}{
coordinate[pos=\p] (y\i)   % define vertical points for downward direction
};
\end{axis}
% draw lines showing variances
\foreach \i/\h in {1/0.5,2/0.5,3/1.2,4/0.5}{
\draw (x\i) --++ (0,\h);                   % relative distance for height upward
}
\foreach \i/\h in {1/0.5,2/1.2,3/0.5,4/0.7}{
\draw (y\i) --++ (0,-\h) coordinate(e\i);  % relative distance for height upward
}
\draw [decorate,decoration={brace,amplitude=5pt,raise=1pt}] 
(y2)--(e2) node [midway,right,xshift=5pt] {\footnotesize $\epsilon_1$};
\end{tikzpicture}
\end{document}

관련 정보