次のグラフィックを再作成しようとしています:
この質問は以前にも聞かれたことがあると知っていますここただし、ソリューションでは を使用したコンパイルが必要ですlualatex
。
これまでのところ、次のものがあります:
Low Variance
、、およびタイトル/軸High Variance
を追加してグラフィックを完成させようとしています。Low Bias
High Bias
また、プロット間のスペースを追加しようとしていますsubfigure
。垂直方向のスペースは問題ないようです。しかし、水平方向のスペースが近すぎます。
ついに:
次の図のように、プロットに 2 つのタグ (overfitting
と) を追加したいと思います。underfitting
(さらに: ポイントの周りに黒い枠線を追加できれば素晴らしいと思います。また、最初の図のように色を暗くすることもできます。色を暗くする方法をいくつか試しましたが、うまくいきませんでした)
コード:
\documentclass{article}
\usepackage{tikz}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}{0.45\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue!50!white,1.2 cm/white,0.4 cm/red!50!white}{%
\path[draw,fill=\col] (0,0) circle (\r) ;}
\foreach \coords in {(0,.1),(.1,.1),(.1,.2),(-.1,0),(-.2,.1),(-.1,-.1),(-.2,-.3),(-.3,-.1),(.3,-.1),(0,-.1),(-.1,0),(-.2,-.1),(-.2,-.2)}{%
\draw[fill=blue] \coords circle (.6mm);}
\end{tikzpicture}
\end{subfigure}
\hfill
\begin{subfigure}{0.45\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue!50!white,1.2 cm/white,0.4 cm/red!50!white}{%
\path[draw,fill=\col] (0,0) circle (\r) ;}
\foreach \coords in {(0,.8),(.2,.9),(.8,.1),(-.1,.7),(-.1,-.4),(-.3,-.1),(-.4,-.9),(.2,-.9),(.5,.5),(-.5,.8),(-.7,-.8),(-.2,-.3),(-.5,0)}{%
\draw[fill=blue] \coords circle (.6mm);}
\end{tikzpicture}
\end{subfigure}
\bigskip
\begin{subfigure}{0.45\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue!50!white,1.2 cm/white,0.4 cm/red!50!white}{%
\path[draw,fill=\col] (0,0) circle (\r) ;}
\foreach \coords in {(0,1.2),(.1,1.4),(-.1,1.3),(-.2,1.2),(-.1,1.3),(-.1,1.4),(-.2,1.5),(0,1.3),(.3,1.4),(0,1.6),(.1,1.6),(-.2,1.5),(.2,1.7)}{%
\draw[fill=blue] \coords circle (.6mm);}
\end{tikzpicture}
\end{subfigure}
\hfill
\begin{subfigure}{0.45\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue!50!white,1.2 cm/white,0.4 cm/red!50!white}{%
\path[draw,fill=\col] (0,0) circle (\r) ;}
\foreach \coords in {(0,1.3),(-1.3,0.4),(-1.4,2.0),(-1.2,1.0),(-1.0,1.6),(-.5,1.7),(-.2,1.5),(-.9,1.9),(.1,1.7),(-.9,1.6),(-.3,1.8),(-.6,1.7),(-.9,1.9)}{%
\draw[fill=blue] \coords circle (.6mm);}
\end{tikzpicture}
\end{subfigure}
\caption{}
\label{fig:biasVarianceTradeOff}
\end{figure}
\end{document}
答え1
アプローチに多くの変更を加えずに実行できる解決策:
MWE:
\documentclass{article}
\usepackage{tikz}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}{0.40\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue,1.2 cm/white,0.4 cm/red}{%
\path[draw,fill=\col] (0,0) circle (\r) node[align=center,above,text height=1cm,yshift=3cm]{Low\\Variance} node[align=center,left,text width=1cm,xshift=-3cm]{Low\\Bias};}
\foreach \coords in {(0,.1),(.1,.1),(.1,.2),(-.1,0),(-.2,.1),(-.1,-.1),(-.2,-.3),(-.3,-.1),(.3,-.1),(0,-.1),(-.1,0),(-.2,-.1),(-.2,-.2)}{%
\draw[fill=green] \coords circle (.6mm);}
\end{tikzpicture}
\end{subfigure}
\hfill
\begin{subfigure}{0.40\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue,1.2 cm/white,0.4 cm/red}{%
\path[draw,fill=\col] (0,0) circle (\r) node[align=center,above,text height=1cm,yshift=3cm]{High\\Variance};}
\foreach \coords in {(0,.8),(.2,.9),(.8,.1),(-.1,.7),(-.1,-.4),(-.3,-.1),(-.4,-.9),(.2,-.9),(.5,.5),(-.5,.8),(-.7,-.8),(-.2,-.3),(-.5,0)}{%
\draw[fill=green] \coords circle (.6mm);}
\node[red] (uf1) at (2.5,-2.5) {Overfitting};
\coordinate (uf2) at (.5,-0.7);
\draw [-latex,red,line width= 1.5pt] (uf1) -- (uf2);
\end{tikzpicture}
\end{subfigure}
\par\bigskip
\begin{subfigure}{0.40\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue,1.2 cm/white,0.4 cm/red}{%
\path[draw,fill=\col] (0,0) circle (\r) node[align=center,left,text width=1cm,xshift=-3cm]{High\\Bias};}
\foreach \coords in {(0,1.2),(.1,1.4),(-.1,1.3),(-.2,1.2),(-.1,1.3),(-.1,1.4),(-.2,1.5),(0,1.3),(.3,1.4),(0,1.6),(.1,1.6),(-.2,1.5),(.2,1.7)}{%
\draw[fill=green] \coords circle (.6mm);}
\node[red] (uf1) at (-2.5,2.5) {Underfitting};
\coordinate (uf2) at (-.25,1.5);
\draw [-latex,red,line width= 1.5pt] (uf1) -- (uf2);
\node[red] (tr1) at (-2.5,-2.5) {Truth};
\coordinate (tr2) at (-0.3,-0.3);
\draw [-latex,red,line width= 1.5pt] (tr1) -- (tr2);
\end{tikzpicture}
\end{subfigure}
\hfill
\begin{subfigure}{0.40\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue,1.2 cm/white,0.4 cm/red}{%
\path[draw,fill=\col] (0,0) circle (\r) ;}
\foreach \coords in {(0,1.3),(-1.3,0.4),(-1.4,2.0),(-1.2,1.0),(-1.0,1.6),(-.5,1.7),(-.2,1.5),(-.9,1.9),(.1,1.7),(-.9,1.6),(-.3,1.8),(-.6,1.7),(-.9,1.9)}{%
\draw[fill=green] \coords circle (.6mm);}
\end{tikzpicture}
\end{subfigure}
\caption{Graphical illustration of bias and variance}
\label{fig:biasVarianceTradeOff}
\end{figure}
\end{document}