我想使用 Latex 上的 pgfplots/tikz 包重现下图。我与您分享一个 .csv 文件来绘制类似的图形。重要的是要注意 y 轴位于图外(左侧),半径有负值和正值(y 值)。我已经花了很多时间寻找一个好的结果,但我没有发现任何人这样做。该图与天线主题有关。
有人能帮我吗?你可以把 y 轴部分视为一个加分点!该图已经是一个巨大的贡献。
提前致谢
csv 文件链接
将第一列视为角度,将第二列视为半径。
答案1
如果我理解正确的话,您希望将 -40 dB 和 +20 dB 之间的所有值绘制在正域中,其中 -40 dB 是电位器的原点。为此,您需要转换数据,然后反向转换轴标签,请参阅极坐标图中的 y 值为负。
为了使 y 轴位于图之外,您可以使用 Gonzalo Medina 的答案中的方法设置轴线偏移?。
\documentclass[10pt,border=10pt]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{polaraxis}[
xticklabel=$\pgfmathprintnumber{\tick}^\circ$,
xtick={0,30,...,330},
ytick={-40,-30,...,20},
ymin=-40, ymax=20,
y coord trafo/.code=\pgfmathparse{#1+40},
rotate=-90,
y coord inv trafo/.code=\pgfmathparse{#1-40},
x dir=reverse,
xticklabel style={anchor=-\tick-90},
yticklabel style={anchor=east, xshift=-4.75cm},
y axis line style={yshift=-4.75cm},
ytick style={yshift=-4.75cm}
]
\addplot [no markers, thick, blue] table [col sep=comma, y=theta] {gain_xy.csv};
\addplot [no markers, thick, red] table [col sep=comma, y=phi] {gain_xy.csv};
\end{polaraxis}
\end{tikzpicture}
\end{document}
答案2
这是使用极坐标图的一个选项pgfplots
并.csv
提供文件:
代码:
\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\pgfplotsset{compat=newest}
\pgfplotstableread[col sep=comma]{gain_xy.csv}{\loadeddata}
\begin{document}
\begin{tikzpicture}
\begin{polaraxis}[
y dir=reverse,
rotate=90,
xticklabel style={anchor=-\tick-90},
grid=both,
major grid style={dotted},
minor grid style={dotted},
minor x tick num=1,
minor y tick num=1,
xtick={0,30,...,330},
ytick={0,10,...,60},
yticklabels={}
]
\addlegendentry{$E_{\theta}$};
\addplot[
data cs=polar,
thick,
red,
samples=200
] table[x index=0,y index=1] {\loadeddata};
\addplot[
data cs=polar,
blue,
thick,samples=200
] table[x index=0,y index=2] {\loadeddata};
\addlegendentry{$E_{\phi}$};
\end{polaraxis}
\end{tikzpicture}
\end{document}
我不明白附图左边的垂直轴。