标签与轴的距离

标签与轴的距离

我是 TikZ 软件包的新手。我正在使用 pgfplots 制作一个非常简单的图。我使用的代码是从网上找到的示例中复制而来的,但我的输出与我看到的示例不同。

这是代码:

\pgfplotsset{   width=0.45\linewidth,
             xmin=0,xmax=100,
             ymin=0,ymax=1,
             grid=major
            }
\begin{tikzpicture}
\begin{axis}[
    xlabel=Percentage,
    ylabel=Accuracy]
    \addplot[smooth,mark=*,blue] plot coordinates {
    (11,0.6)
(15,    0.71)
(19,    0.7)
(25,    0.74)
(32,    0.73)
(40,    0.78)
(50,    0.81)
(51,    0.79)
(55,    0.79)
(56,    0.79)
(58,    0.77)
(61,    0.77)
(69,    0.77)
};
\addlegendentry{legend}
[...]

在输出中,轴刻度的标签离线太近了。有什么方法可以将其移远吗?[我无法发布图片,因为我的声誉太低]

我已经阅读了手册并检查了其他问题,但我找不到需要使用的选项/命令。

请你帮助我好吗?


在按照评论的要求编写最小示例时,我发现只有当文档类为时才会出现该问题baposter。使用该类,article它可以正常工作。

具有类的最小工作示例baposter如下:

\documentclass[a0paper,portrait]{baposter}

\usepackage{graphicx}

\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}

  \begin{poster}{
    grid=false, 
    colspacing=0.7em,
    eyecatcher=false, 
    bgColorOne=white,
    background=plain,
   } %poster
   % eyecatcher
   {

   }
   % title
   {
    TITLE
   }
   %Authors
   {
    AUTHORS
   }
   % Logo
   {

   }

  \headerbox{header}{name=header,column=0,row=0,span=4}{ 
    \pgfplotsset{width=0.45\linewidth,
             xmin=0,xmax=100,
             ymin=0,ymax=1,
             grid=major
            }
    \begin{tikzpicture}
      \begin{axis}[
        xlabel=p,
        ylabel=a]
        \addplot[smooth,mark=*,blue] plot coordinates {
            (11, 0.6)
            (15, 0.71)
            (19, 0.7)
            (25, 0.74)

        };
        \addlegendentry{legend}
      \end{axis}
    \end{tikzpicture}
} % headerbox

\end{poster}

\end{document}

答案1

发生这种情况的原因是,该类baposter将其所有内容放入tikzpicture带有选项的 中inner sep=0pt, outer sep=0pt,该选项被传递给您的tikzpicture,导致打印刻度标签节点时没有任何填充。您可以通过inner sep=0.333em, outer sep=0.5\pgflinewidthtikzpicture选项中添加内容来重置填充(这些是默认值):

\documentclass[a0paper,portrait]{baposter}

\usepackage{graphicx}

\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}

  \begin{poster}{
    grid=false, 
    colspacing=0.7em,
    eyecatcher=false, 
    bgColorOne=white,
    background=plain,
   } %poster
   % eyecatcher
   {

   }
   % title
   {
    TITLE
   }
   %Authors
   {
    AUTHORS
   }
   % Logo
   {

   }

  \headerbox{header}{name=header,column=0,row=0,span=4}{ 
    \pgfplotsset{width=0.45\linewidth,
             xmin=0,xmax=100,
             ymin=0,ymax=1,
             grid=major
            }
    \begin{tikzpicture}[inner sep=0.3333em, outer sep=0.5\pgflinewidth]
      \begin{axis}[
        xlabel=p,
        ylabel=a]
        \addplot[smooth,mark=*,blue] plot coordinates {
            (11, 0.6)
            (15, 0.71)
            (19, 0.7)
            (25, 0.74)

        };
        \addlegendentry{legend}
      \end{axis}
    \end{tikzpicture}
} % headerbox

\end{poster}

\end{document}

答案2

您可以使用节点代替 xlabel 和 ylabel。您可以通过定义正确的位置将节点放置在您想要的位置。

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{plotmarks, arrows, shapes, backgrounds, shadows, positioning, calc, fit}

\begin{document}


\pgfplotsset{   width=0.45\linewidth,
             xmin=0,xmax=100,
             ymin=0,ymax=1,
             grid=major
            }
\begin{tikzpicture}
\begin{axis}[
    %xlabel=Percentage,
    %ylabel=Accuracy
        ]
    \addplot[smooth,mark=*,blue] plot coordinates {
    (11,0.6)
(15,    0.71)
(19,    0.7)
(25,    0.74)
(32,    0.73)
(40,    0.78)
(50,    0.81)
(51,    0.79)
(55,    0.79)
(56,    0.79)
(58,    0.77)
(61,    0.77)
(69,    0.77)
};

\end{axis}

\node at (1.5cm,-0.8cm) {Percentage};
\node at (-1cm,1.5cm) [rotate=90, anchor=base] {Acccuracy};
\end{tikzpicture}

\end{document}

相关内容