如何在 pgfplot 中的极坐标图中移动轴乘数

如何在 pgfplot 中的极坐标图中移动轴乘数

如何在极坐标图中移动轴乘数?在下面的 MWE 中,轴乘数超过了刻度,导致绘图不美观且易读。

\documentclass[crop=true,border=2mm]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\usepgfplotslibrary{dateplot} 
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{graphicx}

%\pgfplotsset{compat=1.7}

\newlength\figureheight
\newlength\figurewidth
\setlength\figureheight{4cm}
\setlength\figurewidth{4cm}

\begin{document}

\begin{tikzpicture} %[scale=1.0]
    \begin{polaraxis}[%
        axis on top,
        width = \figurewidth,
        height = \figureheight,
        scale only axis,
        ymin=5.e5, ymax=1.5e6,
        xtick      ={0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330},
        xticklabels={0, $\frac{\pi}6$, $\frac{\pi}3$, $\frac{\pi}2$, $\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$},
        ytick = {5e5, 1.e6, 1.5e6},
    ]
    \addplot [data cs=polarrad, mark=*, draw=black, smooth]
        table [%
        col sep=comma, trim cells=true, %
        x=x, y=y,] %
        {mydata.dat};
    \end{polaraxis}
\end{tikzpicture}

\end{document}

的内容mydata.dat如下。

# mydata
x,y
0.0000,1.1686E+06
0.0175,1.1686E+06
0.0349,1.1446E+06
0.0524,1.1165E+06
0.0698,1.1034E+06
0.0873,1.1038E+06
0.1047,1.1059E+06
0.1222,1.1317E+06
0.1396,1.1500E+06
0.1571,1.1372E+06
0.1745,1.1173E+06
0.1920,1.1218E+06
0.2094,1.1257E+06
0.2269,1.1203E+06
0.2443,1.1078E+06
0.2618,1.1043E+06
0.2793,1.1239E+06
0.2967,1.1228E+06
0.3142,1.0912E+06
0.3316,1.0909E+06

结果如下图所示。可以看出.10^6,在上xtick=0,使得图难以阅读。

在此处输入图片描述

我已经对所有软件包(包括)进行了更新pgfplots。但是,我仍然("C:\Program Files (x86)\MiKTeX 2.9\pgfplots_1.7.tds\tex\generic\pgfplots\libs\ tikzlibrarypgfplots.polar.code.tex")在日志文件中看到,我假设它正在使用compat=1.7

无论哪个版本,哪个看起来都是可以解决的,有什么方法可以手动设置轴乘数的位置或至少微调其位置?

谢谢。

答案1

您正在寻找every y tick scale label/.style选项。我附上一个例子。

%! *latex mal-polar-plot.tex
\documentclass[crop=true,border=2mm]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\usepgfplotslibrary{dateplot} 
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{graphicx}
\pgfplotsset{compat=1.10}

\newlength\figureheight
\newlength\figurewidth
\setlength\figureheight{4cm}
\setlength\figurewidth{4cm}

\usepackage{filecontents}
\def\malfile{mal-data.txt}
\begin{filecontents*}{\malfile}
# mydata
x,y
0.0000,1.1686E+06
0.0175,1.1686E+06
0.0349,1.1446E+06
0.0524,1.1165E+06
0.0698,1.1034E+06
0.0873,1.1038E+06
0.1047,1.1059E+06
0.1222,1.1317E+06
0.1396,1.1500E+06
0.1571,1.1372E+06
0.1745,1.1173E+06
0.1920,1.1218E+06
0.2094,1.1257E+06
0.2269,1.1203E+06
0.2443,1.1078E+06
0.2618,1.1043E+06
0.2793,1.1239E+06
0.2967,1.1228E+06
0.3142,1.0912E+06
0.3316,1.0909E+06
\end{filecontents*}

\begin{document}

\begin{tikzpicture} %[scale=1.0]
    \begin{polaraxis}[%
        axis on top,
        width = \figurewidth,
        height = \figureheight,
        scale only axis,
        ymin=5.e5, ymax=1.5e6,
        xtick      ={0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330},
        xticklabels={0, $\frac{\pi}6$, $\frac{\pi}3$, $\frac{\pi}2$, $\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$},
        ytick = {5e5, 1.e6, 1.5e6},
        every y tick scale label/.style={at={(0,1)}},
    ]
    \addplot [data cs=polarrad, mark=*, draw=black, smooth]
        table [%
        col sep=comma, trim cells=true, %
        x=x, y=y,] %
        {\malfile};
    \end{polaraxis}
\end{tikzpicture}

\end{document}

姆韦

相关内容