极坐标 pgfplots 中的轴以弧度表示

极坐标 pgfplots 中的轴以弧度表示

我正在使用该polar库来pgfplots绘制如下图形:

\begin{tikzpicture}
\begin{polaraxis}
\addplot[mark = none, domain = 0.4:12, samples = 600, data cs = polarrad]{sin(x)};
\end{polaraxis}
\end{tikzpicture}

如手册中所述,该函数使用弧度,但轴标签仍以度为单位绘制。我想要 0π、π/6、… 11π/6 标签,而不是 0、30、…、330 刻度标签。我确信解决方案一定非常简单,但我还没有找到它。

答案1

我把分数稍微简化了一点

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.7}
\usepgfplotslibrary{polar}
\begin{document}

\begin{tikzpicture}
\begin{polaraxis}[
xticklabel={
\pgfmathparse{\tick/180}
\pgfmathifisint{\pgfmathresult}{$\pgfmathprintnumber[int detect]{\pgfmathresult}\pi$}%
{$\pgfmathprintnumber[frac,frac denom=6,frac whole=false]{\pgfmathresult}\pi$}
}
]
\addplot[mark = none, domain = 0.4:12, samples = 600, data cs = polarrad]{sin(x)};
\end{polaraxis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

\ifnum您可以在整数检查中引入另一个来删除 1 1pi,但对我来说这似乎有点过头了。在我看来,它的可读性很好。

答案2

您还可以跳过 pgf 数学并简单地自己指定 xticklabels(注意复数):

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\usepgfplotslibrary{polar}
\begin{document}

\begin{tikzpicture}
\begin{polaraxis}[
xticklabels={,0,$\frac\pi6$,$\frac\pi3$,$\frac\pi2$,$\frac{2\pi}3$,$\frac{5\pi}6$,
$\pi$,$\frac{7\pi}6$,$\frac{4\pi}3$,$\frac{3\pi}2$,$\frac{5\pi}3$,$\frac{11\pi}6$}
]
\addplot[mark = none, domain = 0.4:12, samples = 600, data cs = polarrad]{sin(x)};
\end{polaraxis}
\end{tikzpicture}

\end{document}

TeX 输出

我不确定 0 之前的第一个标签会发生什么。(您可能还想,sin(deg(x))因为参数仍然被解释为度数。)

相关内容