使用轴线中心将刻度放置在 pgfplots 轴的原点

使用轴线中心将刻度放置在 pgfplots 轴的原点

目前我有如下图所示的图形(使用下面的代码生成)如您所见,根据我明确设置的刻度标签,原点未标记为 2。为什么pgfplots这样做?我如何在那里放置任意文本?

在此处输入图片描述

\documentclass{article}
\usepackage{pgfplots}
\begin{tikzpicture}
    \begin{axis}[
            axis lines=center,
            axis line style={-},
            xtick={-2,0,2},
            xticklabels={1,2,3},
            xmin=-3.5,
            xmax=3.5,
            ymin=0,
            ymax=5,
        ]
        \addplot+[ycomb, mark=none] table {
            -3 1
            -2 2
            -1 3
            0 4
            1 3
            2 2
            3 1
        };
    \end{axis}
\end{tikzpicture}
\end{document}

答案1

这是因为 的默认设置为hide obscured x tickstrue将其设置为false,您将获得所需的结果。

但更好的解决方案是 gernot 在他在这个问题下的评论并且已经投票通过重复的问题

\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
                axis lines=center,
                axis line style={-},
                xtick={-2,0,2},
                xticklabels={1,2,3},
                hide obscured x ticks=false,    % <-- added
                xmin=-3.5,
                xmax=3.5,
                ymin=0,
                ymax=5,
            ]
            \addplot+[ycomb, mark=none] table {
                -3 1
                -2 2
                -1 3
                0 4
                1 3
                2 2
                3 1
            };
        \end{axis}
    \end{tikzpicture}
\end{document}

该图显示了上述代码的结果

相关内容