
シミュレーションプログラムからエクスポートされたデータから生成された、アンテナの放射パターンを表す3D極座標プロットがあります。中央のスパイクが放射パターンの主な特徴ですが、もっと丸みを帯びた。
これは、最大角度解像度が 3 度 (x 軸と y 軸は度単位) であるために発生します。解像度が小さい (2 度または 1 度) と、エラーが発生しますTeX capacity exceeded
。
ただし、ピーク付近 (-15 < phi、theta < 15) のみ解像度を向上できればよいのですが、データ ファイルで苦労しています。
MWE は次のとおりです。
\documentclass{standalone}
\usepackage{pgfplots,siunitx}
\usepgfplotslibrary{dateplot,polar,units,external}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
colorbar,
data cs=polar,
ymin=-50, ymax=50,
xmin=-50, xmax=50,
zmin=0, zmax=31,
xlabel={$\phi$},
x unit=\si{\degree},
ylabel={$\theta$},
y unit=\si{\degree},
zlabel={Directivity},
z unit=\si{\dB},
point meta min=0, point meta max=31,
unit vector ratio*=1 1 2,
z buffer=sort,
view={45}{30},
width=20cm
]
\addplot3[surf, fill=white, mesh/ordering=y varies, mesh/rows=61] %
table[x index={1},y index={0},z index={2}]{8x8-ful-arr-good-3.txt};
\end{axis}
\end{tikzpicture}
\end{document}
データファイルは次のとおりです。
pgfplots を使用して、目的の領域のプロットを改善する方法を探しています。 2 つのファイルを結合する方法はありますか?
答え1
x filter
および/またはを使用して、不要なポイントを除外できますy filter
。メッシュ構造をそのまま維持するには、次の 2 つの項目を考慮する必要があります。
- 必ず割り当ててください
unbounded coords=jump
- 破棄されるべきポイントには「nan」(そしてない空の値)。
これらの項目のいずれかに違反すると、メッシュ構造が破壊されます。
私が得たものは次のとおりです:
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\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,
x filter/.code={%
% PHI:
\ifdim-15pt>#1pt
\def\pgfmathresult{nan}%
\fi
},
y filter/.code={%
% THETA
\ifdim#1pt>15pt
\def\pgfmathresult{nan}%
\fi
},
unbounded coords=jump,
]
\addplot3[surf, fill=white, mesh/ordering=y varies, mesh/rows=37] table[x index={1},y index={0},z index={2}]{polar.dat};
\end{axis}
\end{tikzpicture}
\end{document}
いくつかの注意点:
- 私はあなたのデータファイルを使用しましたPgfplots は極座標プロットでパスを閉じます。
- 効果
x filter
がないようです...データ ファイルに基づいて調整する必要があるかもしれません。 - 私の例のフィルタは、TeX プリミティブ、つまり によって機能します
\ifdim<dimension1> <operation> <dimension2>
。このコンテキストの数値には次元がないため、人工的に「pt」を追加する必要があります。このアプローチでは精度が制限され、数値の範囲は 16384 未満ですが、この図では機能します。 \if<condition> \else \fi
条件文の TeX プリミティブであり、\def\pgfmathresult{nan}
結果を「nan」で上書きします。- いくつかのスライスに穴があり、条件「(-15 < phi, theta < 15)」に何らかの修正が必要であると思われます。これは、間違ったデータ ファイルを使用したか、実際に異なる引数が必要であるかのいずれかが原因です。
参考資料: pgfplots のマニュアル、特に のドキュメントを参照してくださいunbounded coords
。