如何控制 xtick 和次要 xtick 标签

如何控制 xtick 和次要 xtick 标签

我想要绘制这样的数据图表:

在此处输入图片描述

使用此代码:

\documentclass[11pt,a4paper]{article} 
\usepackage{geometry}
\geometry{margin=1in} 

\usepackage{tkz-euclide}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[%
title=Wet van Boyle-Mariotte,
major grid style=black,
axis lines=center,
ymin=50,
ymax=270,
axis y discontinuity=crunch,
xmin=0, xmax=21,
xtick={0,1,...,21},
width=\textwidth,
height=15cm,
xlabel={$V$ (ml)},
ylabel={$p$ (kPa)},
%ticks=both,
minor xtick={0,0.2,...,21},
minor ytick={0,2,...,280},
grid=both,
enlarge x limits={upper},
enlarge y limits={upper},
ylabel near ticks,
xlabel near ticks,
]
\end{axis}
\end{tikzpicture}

\end{document}

我想要(在 x 轴上)在 0、1、2、3、... 处有一条黑线,但在 2、4、6、... 或 0、5、10、... 处只有一个标签。y 轴也是一样。

我知道您可以使用次要 xtick 实现这一点,但我不想更改次要 xtick,因为我需要它们。

答案1

有几个选择:

  1. 使用extra刻度。删除两个轴上的刻度标签,并添加带标签的extra x ticks/ extra y ticks

    xticklabels={},
    yticklabels={},
    extra x ticks={0,2,...,20},
    extra x tick labels={0,2,...,20},
    extra y ticks={60,100,...,280},
    extra y tick labels={60,100,...,280},
    
  2. 手动指定刻度标签,在需要的地方添加空刻度,即

    xticklabels={0,,2,,4,,6,,8,,10,,12,,14,,16,,18,,20,}
    

第一个选项的完整代码

\documentclass[11pt,a4paper]{article} 
\usepackage{geometry}
\geometry{margin=1in} 
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[%
title=Wet van Boyle-Mariotte,
major grid style=black,
axis lines=center,
ymin=50,
ymax=270,
axis y discontinuity=crunch,
xmin=0, xmax=21,
xtick={0,1,...,21},
xticklabels={},
yticklabels={},
extra x ticks={0,2,...,20},
extra x tick labels={0,2,...,20},
extra y ticks={60,100,...,280},
extra y tick labels={60,100,...,280},
width=\textwidth,
height=15cm,
xlabel={$V$ (ml)},
ylabel={$p$ (kPa)},
%ticks=both,
minor xtick={0,0.2,...,21},
minor ytick={0,2,...,280},
grid=both,
enlarge x limits={upper},
enlarge y limits={upper},
ylabel near ticks,
xlabel near ticks,
]
\end{axis}
\end{tikzpicture}

\end{document}

相关内容