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

2 つあります。 を設定して、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}

関連情報