
次のグラフがあります:
溶液から採取したものここグラフィックに次のようなテキストを追加したいと思います。
高いバイアス、低いバイアス、および2つの組み合わせを、「過剰適合」、「不足適合」、「良好なバランス」のラベルとともに表示します。このテキストを現在のtikzpicture
コード:
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[font=\sffamily,
declare function={f(\x)=0.5*pow(abs(\x-2),2)-0.06*pow(\x-2,3);}]
\foreach \Z in {1,...,42}
{\pgfmathsetmacro{\X}{\Z/10}
\pgfmathsetmacro{\Y}{f(\X)+0.9*rnd}
\ifnum\Z=1
\xdef\LstOne{(\X,\Y)}
\xdef\LstTwo{"(\X,\Y)"}
\else
\xdef\LstOne{\LstOne (\X,\Y)}
\xdef\LstTwo{\LstTwo,"(\X,\Y)"}
\fi}
% \begin{scope}[local bounding box=over0]
% \foreach \Z in {1,...,42}
% {\pgfmathsetmacro{\Coor}{{\LstTwo}[\Z-1]}
% \fill \Coor circle[radius=1pt];
% }
% \draw plot[smooth] coordinates \LstOne;
% \end{scope}
\begin{scope}[local bounding box=over,xshift=-5cm]
\foreach \Z in {1,...,40}
{\pgfmathsetmacro{\Last}{{\LstTwo}[\Z-1]}
\pgfmathsetmacro{\Current}{{\LstTwo}[\Z]}
\pgfmathsetmacro{\Next}{{\LstTwo}[\Z+1]}
%\typeout{\Last,\Current,\Next}
\edef\temp{\noexpand\path ($0.6*\Current+0.2*\Last+0.2*\Next$) coordinate
(p\Z);}
\temp
\ifnum\Z=1
\xdef\LstThree{(p\Z)}
\else
\xdef\LstThree{\LstThree (p\Z)}
\fi
}
\foreach \Z in {1,...,42}
{\pgfmathsetmacro{\Coor}{{\LstTwo}[\Z-1]}
\fill \Coor circle[radius=1pt];
}
\draw[thick,blue] plot[smooth] coordinates \LstThree;
\end{scope}
%
\begin{scope}[local bounding box=good,xshift=-10cm]
\foreach \Z in {1,...,42}
{\pgfmathsetmacro{\Coor}{{\LstTwo}[\Z-1]}
\fill \Coor circle[radius=1pt];
}
\draw[thick,blue] plot[smooth,domain=0.1:4.2,variable=\x] (\x,{f(\x)+0.45});
\end{scope}
%
\begin{scope}[local bounding box=under,xshift=-15cm]
\foreach \Z in {1,...,42}
{\pgfmathsetmacro{\Coor}{{\LstTwo}[\Z-1]}
\fill \Coor circle[radius=1pt];
}
\draw[thick,blue] (0.1,0.4) -- (4.2,2);
\end{scope}
%
\foreach \X in {over,good,under}
{\draw[gray,thin] ([xshift=-3pt,yshift=3pt]\X.north west) rectangle
([xshift=3pt,yshift=-3pt]\X.south east);
\draw[stealth-stealth,thick] ([xshift=-3pt,yshift=3pt]\X.north west) node[right=1.5pt,fill=white]{Values}
|- ([xshift=3pt,yshift=-3pt]\X.south east) node[below left]{Time};}
\end{tikzpicture}
\end{document}
答え1
\node[<options>](<name>) at (<coordinate>){<text>};
内にコメントやテキストを追加することができますscope
。さらに、TikZ
ライブラリではpositioning
、他のノードとの関係でノードを配置することができます。上/下、右/左およびそれらの組み合わせ。これらの後にはオプションの引数を続けることができる。<shifting part>
およびそれらの組み合わせ。これらの後にはオプションの引数とが<of part>
。
たとえば、内部では次のようになりますscope
。
\node[red] (lowlow) at (2.2,2.5) {Low bias, low variance}; % <-- here
または
\node[red, below= -2.75cm of over] (lowlow) {Low bias, low variance}; % <-- here
そして外へ:
\node[green,below = 3cm of lowlow] {Good balance}; % <-- here
MWE:
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{calc,positioning}
\begin{document}
\begin{tikzpicture}[font=\sffamily,
declare function={f(\x)=0.5*pow(abs(\x-2),2)-0.06*pow(\x-2,3);}]
\foreach \Z in {1,...,42}
{\pgfmathsetmacro{\X}{\Z/10}
\pgfmathsetmacro{\Y}{f(\X)+0.9*rnd}
\ifnum\Z=1
\xdef\LstOne{(\X,\Y)}
\xdef\LstTwo{"(\X,\Y)"}
\else
\xdef\LstOne{\LstOne (\X,\Y)}
\xdef\LstTwo{\LstTwo,"(\X,\Y)"}
\fi}
% \begin{scope}[local bounding box=over0]
% \foreach \Z in {1,...,42}
% {\pgfmathsetmacro{\Coor}{{\LstTwo}[\Z-1]}
% \fill \Coor circle[radius=1pt];
% }
% \draw plot[smooth] coordinates \LstOne;
% \end{scope}
\begin{scope}[local bounding box=over,xshift=-5cm]
\foreach \Z in {1,...,40}
{\pgfmathsetmacro{\Last}{{\LstTwo}[\Z-1]}
\pgfmathsetmacro{\Current}{{\LstTwo}[\Z]}
\pgfmathsetmacro{\Next}{{\LstTwo}[\Z+1]}
%\typeout{\Last,\Current,\Next}
\edef\temp{\noexpand\path ($0.6*\Current+0.2*\Last+0.2*\Next$) coordinate
(p\Z);}
\temp
\ifnum\Z=1
\xdef\LstThree{(p\Z)}
\else
\xdef\LstThree{\LstThree (p\Z)}
\fi
}
\foreach \Z in {1,...,42}
{\pgfmathsetmacro{\Coor}{{\LstTwo}[\Z-1]}
\fill \Coor circle[radius=1pt];
}
\draw[thick,blue] plot[smooth] coordinates \LstThree;
% \node[red] (lowlow) at (2.2,2.5) {Low bias, low variance}; % <-- here
\node[red, below= -2.75cm of over] (lowlow) {Low bias, low variance}; % <-- here
\end{scope}
%
\begin{scope}[local bounding box=good,xshift=-10cm]
\foreach \Z in {1,...,42}
{\pgfmathsetmacro{\Coor}{{\LstTwo}[\Z-1]}
\fill \Coor circle[radius=1pt];
}
\draw[thick,blue] plot[smooth,domain=0.1:4.2,variable=\x] (\x,{f(\x)+0.45});
% \node[red] (highb) at (2.2,2.5) {High bias}; % <-- here
\node[red, below= -2.75cm of good] (highb) {High bias}; % <-- here
\end{scope}
%
\begin{scope}[local bounding box=under,xshift=-15cm]
\foreach \Z in {1,...,42}
{\pgfmathsetmacro{\Coor}{{\LstTwo}[\Z-1]}
\fill \Coor circle[radius=1pt];
}
\draw[thick,blue] (0.1,0.4) -- (4.2,2);
% \node[red] (highv) at (2.2,2.5) {High variance}; % <-- here
\node[red, below= -2.75cm of under] (highv) {High variance}; % <-- here
\end{scope}
%
\foreach \X in {over,good,under}
{\draw[gray,thin] ([xshift=-3pt,yshift=3pt]\X.north west) rectangle
([xshift=3pt,yshift=-3pt]\X.south east);
\draw[stealth-stealth,thick] ([xshift=-3pt,yshift=3pt]\X.north west) node[right=1.5pt,fill=white]{Values}
|- ([xshift=3pt,yshift=-3pt]\X.south east) node[below left]{Time};}
\node[green,below = 3cm of lowlow] {Good balance}; % <-- here
\node[green,below = 3cm of highb] {underfitting}; % <-- here
\node[green,below = 3cm of highv] {overfitting}; % <-- here
\end{tikzpicture}
\end{document}