引自pgfplots手册

引自pgfplots手册

我有一个 TikZ/PGF 轴环境,其中默认数字沿刻度显示。

我希望它看起来像这样:

无刻度数的轴

(无刻度数的轴)

我发现了如何使用类似的东西来修改刻度线本身

    x tick label style={major tick length=0pt}

在轴环境的选项中。但我找不到如何修改刻度线本身的数字。没有隐藏它们的选项吗?

我当前生成第一个例子的代码:

\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{plotmarks}
\usepackage{pgfplots}
\begin{document}
  \begin{tikzpicture}
    \begin{axis}[
      title={Test Axis},
      xlabel={Test X Label},
      ylabel={Test Y Label},
    ]
    \end{axis}
  \end{tikzpicture}
\end{document}

答案1

在我看来,删除所有勾选标签的最干净的方法是轴是使用yticklabel=\emptyyticklabel={\empty}xticklabel=\empty将执行相同的操作X轴)。请注意,没有sin yticklabel

这是因为/pgfplots/xticklabel/pgfplots/yticklabel/pgfplots/zticklabel键接受一个{〈code〉}参数,该参数定义如何以通用方式格式化每个刻度 - 请参阅pgfplots下面重现的手册摘录。

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}

\begin{document}
  \begin{tikzpicture}
    \begin{axis}[
      title={Test axis},
      xlabel={Test $x$ label},
      ylabel={Test $y$ label},
      yticklabel=\empty,
    ]
    \end{axis}
  \end{tikzpicture}
\end{document}

截屏

引自pgfplots手册

/pgfplots/xticklabel以下是本手册中、/pgfplots/yticklabel/pgfplots/zticklabel键的文档开头pgfplots,版本 1.16(截至 2020 年 1 月的最新版本)。

/pgfplots/xticklabel={〈command〉}
/pgfplots/yticklabel={〈command〉}
/pgfplots/zticklabel={〈command〉}

这些键会改变创建勾号的 TeX 命令标签分配给每个刻度位置(参见选项xtickytick)。

这是直接指定刻度标签的两个选项之一。另一个选项是xticklabels={〈label list〉}(或yticklabels={〈label list〉})。该选项xticklabel提供更高的灵活性,同时xticklabels更易于使用。

参数 〈command〉 可以是任意 TeX 文本。以下命令在 〈command〉 中有效:

  • \tickxtickoption (或)的当前元素ytick
  • \ticknum当前的刻度号,从0开始(它是一个包含数字的宏)。
  • \nexttickx tick label as interval此命令仅在设置了选项(或设置了相应变量)时才有效)。它将包含下一个刻度的位置,即刻度间隔的右边界。

默认参数是

  • \axisdefaultticklabel对于正态图:

    \def\axisdefaultticklabel{$\pgfmathprintnumber{\tick}$}
    
  • \axisdefaultticklabellog对于对数图:
    \def\axisdefaultticklabellog{%
        \pgfkeysgetvalue{/pgfplots/log number format code/.@cmd}\pgfplots@log@label@style
        \expandafter\pgfplots@log@label@style\tick\pgfeov
    }
    

答案2

只需添加yticklabels={,,}到环境选项中即可axis。您的示例如下所示。

\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{plotmarks}
\usepackage{pgfplots}
\begin{document}
  \begin{tikzpicture}
    \begin{axis}[%
      title={Test Axis},
      xlabel={Test X Label},
      ylabel={Test Y Label},
      yticklabels={,,}
    ]
    \end{axis}
  \end{tikzpicture}
\end{document}

此功能在 180 页的第 4.14.2 节(刻度对齐:位置和移位)中有记录。pgf图1.4.1 手册。在所提及章节的最后一个示例中相当隐蔽。

答案3

线路

\pgfplotsset{ticks=none}

删除刻度和标签。

关于仅隐藏刻度标签:一种想法是将刻度标签颜色设置为背景颜色。例如:

\pgfplotsset{tick label style={color=white},
  label style={font=\small},
  legend style={font=\small}

若要移动轴标签,需另外修改相应的样式,例如:

\pgfplotsset{every axis x label/.style={
  at={(0.5,0)},
  below,
  yshift=-5pt}}

调整yshift参数。y 轴类似。

\pgfplotsset{every axis y label/.style={
  at={(0,0.5)},
  xshift=-15pt,
  rotate=90}}

替代文本

答案4

我偶然发现了一个很好的解决方案,使用\empty作为想要隐藏的标签的参数,例如yticklabels=\empty

\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{plotmarks}
\usepackage{pgfplots}
\begin{document}
  \begin{tikzpicture}
    \begin{axis}[
      title={Test Axis},
      xlabel={Test X Label},
      ylabel={Test Y Label},
      yticklabels=\empty,
    ]
    \end{axis}
  \end{tikzpicture}
\end{document}

以上产生这张照片

相关内容