Pgfplots \closedcycle no se completó correctamente

Pgfplots \closedcycle no se completó correctamente

Estoy tratando de ilustrar un casco en un gráfico basado en nodos del casco calculados externamente. Para ello suelo \closedcyclerellenar el casco encerrado por los puntos correspondientes.

El primer casco se traza basándose en cuatro puntos de datos, lo que da como resultado una forma de casco algo trapezoidal como se esperaba (relleno amarillo).

El segundo casco tiene una forma bastante irregular y está descrito por ocho puntos de datos en total. Sin embargo, al utilizar el enfoque que funciona para el casco amarillo, se produce un gráfico incorrecto para el segundo casco (relleno azul):

  1. El casco parece extenderse hasta el eje x.
  2. Falta la sección extendida hasta el eje x en el relleno del casco.
  3. Como lo indican los puntos de datos trazados a modo de ilustración (comente este gráfico para ver la sección del casco que falta en la parte superior derecha del casco azul), los puntos en los que el casco se extiende hasta el eje x no forman parte del conjunto de datos subyacente.

Fragmento de código mínimo para producir la trama:

\documentclass{article}
\usepackage{filecontents}
\usepackage{pgfplots}


\begin{filecontents}{okay_points.dat}
    hull_x;hull_y
    0.35501086786719216;0.35501086786719216
    0.3501998312158284;0.3501998312158284
    0.3501998312158284;0.0
    0.35501086786719216;0.0
\end{filecontents}

\begin{filecontents}{problematic_points.dat}
    hull_x;hull_y
    0.6268512948297316;0.6591688411952603
    0.3501998312158284;0.3501998312158284
    0.35501086786719216;0.35501086786719216
    0.6278876657471278;0.6560286756711164
    0.6330607325983083;0.6624668180953179
    0.6330598364108084;0.6638809669603063
    0.6322766634159019;0.6639305124049031
    0.6280718253300845;0.6603345843906823
\end{filecontents}


\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            no markers,
            %
            xmin = 0.25,
            xmax = 0.7,
            ymin = 0.25,
            ymax = 0.7,
            ]

            \pgfplotstableread[col sep=semicolon]{okay_points.dat}\okay
            \pgfplotstableread[col sep=semicolon]{problematic_points.dat}\problem

            % -- okay --
            % use closedcycle to plot hull using data points
            \addplot+[fill=yellow, draw=none] table[x = hull_x, y = hull_y]{\okay}\closedcycle;


            % -- problematic --
            % use closedcycle to plot hull using data points
            \addplot+[fill=blue, draw=none] table[x = hull_x, y = hull_y]{\problem}\closedcycle;
            % --> problem: hull extended to the x-axis (thin line) and filled section missing in upper part of hull

            % plot points to illustrate hull node points
            \addplot+[only marks, mark options = {thin, solid}, gray] table[x = hull_x, y = hull_y]{\problem};
            % --> comment out / disable line to see section missing in upper part of hull (otherwise covered by point markers)
            % --> hull node points do not include values with y < 0.25: Why is filled area extended to x-axis?
        \end{axis}
    \end{tikzpicture}
\end{document}

Como se explicó, el casco azul ilustrado en el gráfico obtenido se extiende incorrectamente hasta el eje x y a su relleno le falta una sección en la región correspondiente (por lo tanto, supongo que ambos problemas están relacionados entre sí):

trama del casco relleno faltante

Respuesta1

Observación: Resumiendo el comentario de @JasperHabicht para poder marcar esta pregunta como resuelta.

Usar -- cylceen lugar de \closedcycleresolver el problema. En aras de la exhaustividad, a continuación se resumen las líneas de código relevantes.


\addplot+[fill=yellow, draw=none] table[x = hull_x, y = hull_y]{\okay}\closedcycle;

se convierte

\addplot+[fill=yellow, draw=none] table[x = hull_x, y = hull_y]{\okay} -- cycle;

\addplot+[fill=blue, draw=none] table[x = hull_x, y = hull_y]{\problem}\closedcycle;

se convierte

\addplot+[fill=blue, draw=none] table[x = hull_x, y = hull_y]{\problem} -- cycle;

información relacionada