다음과 같은 극좌표 형태로 안테나 방사 패턴을 만들고 싶습니다. (이미지 제공: 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}