如何在极坐标图中移动轴乘数?在下面的 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}