如何在pgfplots中移除坐标轴首尾刻度及刻度标签?
移除PGFPlots坐标轴首尾刻度及标签的实现方法
要实现移除x轴和y轴首尾刻度并隐藏对应标签的需求,你可以直接调整xtick和ytick的取值范围,排除首尾的边界值,同时删掉多余的手动标签设置,具体修改后的代码如下:
\documentclass{standalone} \usepackage[utf8]{inputenc} \usepackage{tikz,pgfplots} \usepackage{helvet} \usepgfplotslibrary{fillbetween} \pgfplotsset{compat=newest, width=7cm, height=7cm, every x tick label/.append style={font=\scriptsize\sffamily, yshift=0.2ex}, every y tick label/.append style={font=\scriptsize\sffamily, xshift=0.2ex}} \begin{document} \begin{tikzpicture}[font=\small\sffamily] \begin{axis}[ clip=true, xmin=-3, xmax=6, ymin=-4, ymax=5, % 直接排除首尾刻度,只保留中间需要显示的刻度值 xtick={-2,-1,0,1,2,3,4,5}, ytick={-3,-2,-1,0,1,2,3,4}, minor tick num=1, axis lines=middle, xlabel=\textbf{x}, ylabel=\textbf{y}, xmajorgrids=true, xminorgrids=true, ymajorgrids=true, yminorgrids=true, axis line style={line width=1pt}, every x tick/.style={color=black, thick}, every y tick/.style={color=black, thick} ] \draw[line width=.5pt](current axis.south west)rectangle(current axis.north east); \end{axis} \end{tikzpicture} \end{document}
关键修改说明:
- x轴调整:将原代码中包含首尾边界的
xtick={-3,...,6}改为xtick={-2,-1,0,1,2,3,4,5},直接移除x轴首尾的-3和6刻度,对应的刻度线和标签会自动消失。 - y轴调整:同理,将
ytick={-4,...,5}改为ytick={-3,-2,-1,0,1,2,3,4},移除y轴首尾的-4和5刻度。 - 简化标签设置:删掉原来手动指定的
xticklabels和yticklabels,因为现在xtick/ytick的数值正好是需要显示的标签内容,PGFPlots会自动生成对应标签,无需手动设置空值占位。
如果你的需求是保留首尾刻度线但隐藏标签(而非移除刻度),可以保留原xtick/ytick范围,只修改标签列表,将首尾标签设为空字符串,但这种场景下刻度线依然会显示:
xtick={-3,...,6}, xticklabels={,-2,-1,0,1,2,3,4,5,}, % 首尾为空 ytick={-4,...,5}, yticklabels={,-3,-2,-1,0,1,2,3,4,}, % 首尾为空
内容的提问来源于stack exchange,提问作者OK_4711
相关产品推荐
相关产品推荐

