我需要将一个点的 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}