为什么 PGFPlots 不尊重我的轴名称位置?

为什么 PGFPlots 不尊重我的轴名称位置?

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=bottomaxis 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}

带轴标签的图表

相关内容