Pgfplots schließt Pfade im Polardiagramm

Pgfplots schließt Pfade im Polardiagramm

Ich möchte ein Antennenstrahlungsmuster in Form eines Polardiagramms wie diesem erstellen: Bildbeschreibung hier eingeben (Bildnachweis: CA Balanis; Antennentheorie, -analyse und -design)

Was ich bisher gemacht habe, ist der folgende Code (die Datendatei, die das Beispiel zum Laufen bringt, istHier):

\documentclass{standalone}

\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
        data cs=polar,
%       restrict x to domain=0:180,
%       restrict y to domain=0:180,
        ymin=-90,
        ymax=90,
        zmax=10.8,
        ]
\addplot3[surf,fill=white] table[x index={1},y index={0},z index={2}]{subarray-3d-plot-dir.csv};
\end{axis}
\end{tikzpicture}
\end{document}

aber seltsamerweise pgfplotsschließt es die Pfade zwischen dem ersten und dem letzten Punkt, wie man im resultierenden Bild sehen kann:

Bildbeschreibung hier eingeben

Meine Fragen:

  • wie entferne ich die Segmente, die die Pfade schließen?
  • wie kann das Netz/die Oberfläche verbessert werden?

Klarstellung: Die Datendatei stammt aus einer Simulationssoftware, daher habe ich keine Möglichkeit, die Art und Weise zu ändern, in der die Daten darin geschrieben werden.

Antwort1

Zwei Dinge: Sie müssen PGFPlots mitteilen, wie viele Zeilen jeder Datenblock enthält, indem Sie festlegen mesh/rows=37(alternativ könnten Sie nach jedem Datenblock eine leere Zeile einfügen, aber da Ihre Datei von einem externen Programm generiert wird, ist das hier wahrscheinlich keine Option). Außerdem müssen Sie festlegen mesh/ordering=y varies, da PGFPlots standardmäßig davon ausgeht, dass die x-Koordinate variiert.

\documentclass[border=5mm]{standalone}

\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
        data cs=polar,
        ymin=-180, ymax=180,
        xmin=-180, xmax=180,
        zmin=-20, zmax=11,
        unit vector ratio*=1 1 10,
        z buffer=sort,
        view={45}{30},
        width=15cm
        ]
\addplot3[surf, fill=white, mesh/ordering=y varies, mesh/rows=37] table[x index={1},y index={0},z index={2}]{data.dat};
\end{axis}
\end{tikzpicture}
\end{document}

verwandte Informationen