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}

相关内容