Desenhe pontos dentro ou fora de um polígono (TiKZ)

Desenhe pontos dentro ou fora de um polígono (TiKZ)

Olá, tenho esse gráfico e gostaria de desenhar dois pontos nas coordenadas (3,1)e (4,4)na cor vermelha.

\begin{tikzpicture}
\begin{axis}[
    title={Low capacity scenario (Scenary=2)},
    axis x line=bottom,
    axis y line=left,
    xlabel={arrival/15min},
    ylabel={departure/15min},
    xmin=0, xmax=8,
    ymin=0, ymax=8,
    enlargelimits=false
   ]
   \addplot coordinates {
    (0,0)
    (4,0)
    (4,1)
    (3,3)
    (0,4)
    (0,0)
   }; 
   \legend{maximum capacity}
\end{axis}
\end{tikzpicture}}

Como eu posso fazer isso? Traçando apenas dois pontos vermelhos circulares dentro do gráfico já feito? Obrigado por ajudar. Não encontrei nenhum gráfico semelhante no manual.

Responder1

Você pode adicionar dois gráficos nas coordenadas desejadas:

\addplot[red,mark=*] coordinates {(3,1)};
\addplot[red,mark=*] coordinates {(4,4)};   

Ou adicionando outro gráfico com uma opção draw=nonecomo:

\addplot[draw=none,red,mark=*] coordinates {
   (3,1)
   (4,4)
   };

no mesmo axis, o que lhe dá a seguinte figura:

insira a descrição da imagem aqui

O código completo:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}

\begin{tikzpicture}
\begin{axis}[
    title={Low capacity scenario (Scenary=2)},
    axis x line=bottom,
    axis y line=left,
    xlabel={arrival/15min},
    ylabel={departure/15min},
    xmin=0, xmax=8,
    ymin=0, ymax=8,
    enlargelimits=false
   ]
   \addplot coordinates {
    (0,0)
    (4,0)
    (4,1)
    (3,3)
    (0,4)
    (0,0)
   }; 
   \legend{maximum capacity}
   \addplot[red,mark=*] coordinates {(3,1)};
   \addplot[red,mark=*] coordinates {(4,4)};
\end{axis}
\end{tikzpicture}

\end{document}

Responder2

Embora adicioná-los por meio de um \addplotcomando seja uma opção, você mesmo pode desenhar esses círculos. Quando você tiver a pgfplotsversão 1.12 instalada e com a linha \pgfplotsset{compat=1.12}no preâmbulo, bastaria:

 \pgfplotsset{compat=1.12}
.
.
.
\fill[red] (3,1) circle (2pt);
\fill[red] (4,4) circle (2pt);

Se você tiver versões anteriores à 1.12, faça o seguinte:

\fill[red] (axis cs: 3,1) circle (2pt);
\fill[red] (axis cs: 4,4) circle (2pt);

Código:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}

\begin{tikzpicture}
\begin{axis}[
    title={Low capacity scenario (Scenary=2)},
    axis x line=bottom,
    axis y line=left,
    xlabel={arrival/15min},
    ylabel={departure/15min},
    xmin=0, xmax=8,
    ymin=0, ymax=8,
    enlargelimits=false
   ]
   \addplot coordinates {
    (0,0)
    (4,0)
    (4,1)
    (3,3)
    (0,4)
    (0,0)
   };
   \legend{maximum capacity}
   \fill[red] (3,1) circle (2pt);
   \fill[red] (4,4) circle (2pt);
\end{axis}
\end{tikzpicture}

\end{document}

insira a descrição da imagem aqui

informação relacionada