将轴标签放在正确位置时出现问题

将轴标签放在正确位置时出现问题

我似乎找不到坐标轴标签没有出现在我想要的位置的原因。我希望“x”位于 x 轴的右侧,而“y”位于 y 轴的上方。我尝试了“当前轴.原点的右侧”、“当前轴.原点的上方”以及“ticklabel* cs”。但似乎都不起作用。我遗漏了什么?

\documentclass[tikz]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    xlabel=$x$,
    every axis x label/.style={at={(current axis.right of origin)},anchor=west},
    ylabel=$y$,
    every axis y label/.style={at={(ticklabel* cs:2)},anchor=south},
    axis lines=middle,
    domain=0:5.5,samples=100]
\addplot[
name path=line1,
color=blue]{x^2};
\addplot[
name path=line2,
color=violet]{2^(-x)};
\end{axis}
\fill[draw,name intersections={of=line1 and line2},red](intersection-1) circle (2pt);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

重新axis lines=middle定义every axis x label/.styleevery axis x label/.style。您必须在之后设置两种样式axis lines=middle

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    axis lines=middle,
    xlabel=$x$,
    every axis x label/.style={at={(current axis.right of origin)},anchor=west},
    ylabel=$y$,
    every axis y label/.style={at={(current axis.above origin)},anchor=south},
    domain=0:5.5,samples=100]
\addplot[
name path=line1,
color=blue]{x^2};
\addplot[
name path=line2,
color=violet]{2^(-x)};
\end{axis}
\fill[draw,name intersections={of=line1 and line2},red](intersection-1) circle (2pt);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

  1. 您使用的是旧pgfplots版本(1.9 版)。请使用/升级到最新版本(目前为 1.18.1 版),您可以通过 调用它\pgfplotsset{compat=1.18}
  2. 轴标签样式,根据你的喜好,你可以简单地定义
     xlabel style={right},
     ylabel style={above},
    

对代码进行一些小的修改后完成的 MWE 如下:

\documentclass[border=3.141592pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usetikzlibrary{intersections}

\begin{document}
    \begin{tikzpicture}
\begin{axis}[
    axis lines=center,
    xlabel=$x$, ylabel=$y$,
    xlabel style={right},
    ylabel style={above},
    domain=0:5.6,samples=100]
\addplot[name path=line1, color=blue]{x^2};
\addplot[name path=line2, color=violet]{2^(-x)};
%
\fill [name intersections={of=line1 and line2, by=a}, 
       red, semitransparent] (a)  circle [radius=2.4pt];
\end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容