我有一个 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=\empty
或yticklabel={\empty}
(xticklabel=\empty
将执行相同的操作X轴)。请注意,没有s
in 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 命令标签分配给每个刻度位置(参见选项
xtick
和ytick
)。这是直接指定刻度标签的两个选项之一。另一个选项是
xticklabels={〈label list〉}
(或yticklabels={〈label list〉}
)。该选项xticklabel
提供更高的灵活性,同时xticklabels
更易于使用。参数 〈command〉 可以是任意 TeX 文本。以下命令在 〈command〉 中有效:
\tick
xtick
option (或)的当前元素ytick
。\ticknum
当前的刻度号,从0开始(它是一个包含数字的宏)。\nexttick
x 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}