我想绘制一个以 dB 为单位的极坐标图,在这种情况下,我有正值和负值。通常,负半径会以相反的方向绘制,但借助变换坐标我得到了我想要的结果。
但现在存在负刻度和正刻度不完全对齐的问题。我试过了一个提示但这只能稍微修正偏移。这可能是因为该解决方案是针对旋转刻度问题给出的。
如何才能使半径轴刻度正确对齐?
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\begin{document}
\begin{tikzpicture}
\begin{polaraxis}[%
xtick={0,30,...,180},
ymin=-25,
ymax=10,
xmax=180,
y coord trafo/.code=\pgfmathparse{#1+25},
y coord inv trafo/.code=\pgfmathparse{#1-25},
xticklabel=$\pgfmathprintnumber{\tick}^\circ$,
yticklabel style={yshift=-0.5cm},
],
\addplot[%
]
coordinates{%
(0,-15)
(30,-5)
(90,0)
(120,5)
};
\end{polaraxis}
\end{tikzpicture}
\end{document}
答案1
正如前面提到的在问题下方的评论中,刻度标签是完美对齐。请查看代码中的注释以了解更多详细信息。
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\begin{document}
\begin{tikzpicture}
\begin{polaraxis}[
ymin=-25,
ymax=10,
xmax=180,
% when you have at PGFPlots v1.13 you can use the `xtick distance' feature
% xtick={0,30,...,180},
xtick distance=30,
y coord trafo/.code=\pgfmathparse{#1+25},
y coord inv trafo/.code=\pgfmathparse{#1-25},
xticklabel=$\pgfmathprintnumber{\tick}^\circ$,
yticklabel style={
% draw a frame around the tick labels to see, that they are
% indeed centered
draw=red,
% (and use there is a better way to position the tick labels
% on the other side of the axis ...)
% yshift=-0.5cm,
anchor=near yticklabel opposite,
},
],
\addplot coordinates {
(0,-15) (30,-5) (90,0) (120,5)
};
\end{polaraxis}
\end{tikzpicture}
\end{document}