私は、次のような極座標の形でアンテナ放射パターンを作成したいと思います。 (画像提供: 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}