PGFPlots 不尊重我的轴标签位置。为什么x label style={at={(...)}}
(对于是轴)不工作?
梅威瑟:
\documentclass[11pt]{book}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document}
\begin{figure}
\begin{center}{
\begin{tikzpicture}
\pgfplotsset{scaled y ticks=false,every axis legend/.append style={at={(0.024,0.5)},anchor=east}}
\begin{axis}[
width=0.9*\textwidth,
height=0.9*\textwidth,
axis line style=thick,
xmin=-4,
xmax=4,
x label style={at={(current axis.right of origin)},anchor=west},
xlabel=$x$,
axis x line=middle,
ymin=-4,
ymax=4,
y label style={at={(current axis.above origin)},anchor=south,rotate=-90},
ylabel=$y$,
axis y line=center,
disabledatascaling
]
\addplot[smooth,thick,red,domain=-4:4]{(1/10)*x^3};
\end{axis}
\end{tikzpicture}
}
\end{center}
\end{figure}
\end{document}
放置选项current axis.right of origin
应该使水平轴标签出现在轴的右侧,而不是上方,放置选项current axis.above origin
应该使垂直轴标签出现在轴的上方,而不是旁边。
设置axis x line=bottom
或axis y line=left
修复相应轴的标签位置,但它会将轴线移动到图形的边缘,这是我不想要的。
它为什么会出现这样的行为?
答案1
您正在使用例如覆盖选项axis x line=middle
。
\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width=0.9*\textwidth,
height=0.9*\textwidth,
axis lines=middle,
axis line style=thick,
xmin=-4, xmax=4,
ymin=-4, ymax=4,
xlabel=$x$,
x label style={at={(current axis.right of origin)}, anchor=west},
ylabel=$y$,
y label style={at={(current axis.above origin)}, anchor=east, rotate=-90},
]
\addplot[smooth, thick, red, domain=-4:4]{(1/10)*x^3};
\end{axis}
\end{tikzpicture}
\end{document}