Pgfplots는 극좌표의 경로를 닫습니다.

Pgfplots는 극좌표의 경로를 닫습니다.

다음과 같은 극좌표 형태로 안테나 방사 패턴을 만들고 싶습니다. 여기에 이미지 설명을 입력하세요 (이미지 제공: CA Balanis; 안테나 이론, 분석 및 설계)

지금까지 제가 한 일은 다음과 같은 코드입니다(예제를 작동시키기 위한 데이터 파일은 다음과 같습니다).여기):

\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}

그러나 이상하게도 pgfplots결과 이미지에서 볼 수 있듯이 첫 번째 지점과 마지막 지점 사이의 경로가 닫힙니다.

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

내 질문:

  • 경로를 닫는 세그먼트를 제거하는 방법은 무엇입니까?
  • 메쉬/표면을 개선하는 방법은 무엇입니까?

설명: 데이터 파일은 시뮬레이션 소프트웨어에서 제공되므로 데이터가 기록되는 방식을 변경할 수 있는 방법이 없습니다.

답변1

두 가지: 설정을 통해 각 데이터 블록에 몇 개의 행이 있는지 PGFPlots에 알려야 합니다. mesh/rows=37또는 각 데이터 블록 뒤에 빈 행을 삽입할 수도 있지만 파일이 외부 프로그램에 의해 생성되므로 이는 아마도 옵션이 아닐 것입니다. 여기). 또한 mesh/ordering=y varies기본적으로 PGFPlots는 x 좌표가 다양하다고 가정하므로 을 설정해야 합니다 .

\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}

관련 정보