tikz를 사용하여 불스아이 플롯 복제

tikz를 사용하여 불스아이 플롯 복제

다음 그래픽을 다시 만들려고 합니다.

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

이 질문이 이전에 요청된 것으로 알고 있습니다.여기하지만 솔루션에는 lualatex.

나는 지금까지 다음을 가지고 있습니다 :

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

Low Variance, High Variance, Low Bias제목 High Bias/축을 추가하여 그래픽을 완성하려고 합니다 .

또한 플롯 사이에 공간을 추가하려고 합니다 subfigure. 세로 공간은 괜찮은 것 같은데 가로 공간이 너무 가깝습니다.

마지막으로:

다음 그림과 같이 플롯( 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}

관련 정보