如何将点的 x 坐标作为额外的 x 刻度?

如何将点的 x 坐标作为额外的 x 刻度?

我需要将一个点的 x 坐标作为额外的 x 刻度,但常用的方式是不合理的,因为可能有很多点,并且重复它们是extra x ticks不好的。

\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}

    \begin{document}

    %---------------------------------------------------------

            \begin{tikzpicture}[
                ]
                \begin{axis}[
                    width=\linewidth, axis lines = middle,
                    extra x ticks = {1.1, 2.2,3.3}, % irrational decision, because there can be many points
                    xtick=data,
                ]
                \addplot[] {x};
                \addplot[color=red,mark=*, only marks] coordinates {
                        (1.1,1)
                        (2.2,2)
                        (3.3,3)
                    };
                \end{axis}
            \end{tikzpicture}

    %---------------------------------------------------------
    \end{document}

答案1

如果你

xtick=data, % data points from first \addplot
extra x ticks={-4,...,4} % regularly spaced ticks

您将获得第一个中每个点的刻度\addplot,以及规则间隔的刻度。不过这可能会有点混乱。一种分离它们的方法是将坐标刻度向下移动,即

xticklabel style={yshift=-15pt},
extra x tick style={tick label style={yshift=15pt}}

需要第二行,因为第一行也会影响额外的刻度标签。

对于nodes near coords,添加point meta=x,nodes near coords的选项\addplot将在该图中的点旁边添加 x 值。下面的代码演示了这两种情况。

在此处输入图片描述

\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}

    \begin{document}

    %---------------------------------------------------------

            \begin{tikzpicture}[
                ]
                \begin{axis}[
                    width=\linewidth, 
                    axis lines = middle,
                    xtick=data, % data points from first \addplot
                    extra x ticks={-4,...,4}, % regularly spaced ticks
                    xticklabel style={yshift=-15pt},
                    extra x tick style={tick label style={yshift=15pt}}
                ]
                \addplot[color=red,mark=*,
                         only marks,
                         point meta=x, % use x-value for nodes near coords
                         nodes near coords
                        ] coordinates {
                        (1.1,1)
                        (2.2,2)
                        (3.3,3)
                    };
                \addplot[] {x};

                \end{axis}
            \end{tikzpicture}

    %---------------------------------------------------------
    \end{document}

相关内容