有时,很难避免散点图中的标记标签“碰撞”,我的意思是标签相互重叠。如果我不想删除数据点以避免重叠,是否可以移动单个标签(就像 TikZ 节点一样)?以下 MWE 说明了这个问题:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel=$a$,
ylabel=$b$
]
\addplot[blue,mark=*,mark options={fill=blue},nodes near coords,only marks,
point meta=explicit symbolic] table[meta=label] {
x y label
100 152 {Long label 1}
200 180 {Long label 2}
110 150 {Long label 3}
};
\end{axis}
\end{tikzpicture}
\end{document}
理想情况下,我希望能够调整选定标签的左/右/上/下。谢谢!
答案1
您可以添加您喜欢的锚点以及可能的其他属性,如下所示,
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel=$a$,
ylabel=$b$,
]
\addplot[blue,mark=*,mark options={fill=blue},nodes near coords,only marks,
point meta=explicit symbolic,
visualization depends on={value \thisrow{anchor}\as\myanchor},
every node near coord/.append style={anchor=\myanchor}
] table[meta=label] {
x y label anchor
100 152 {Long label 1} south
200 180 {Long label 2} east
110 150 {Long label 3} west
};
\end{axis}
\end{tikzpicture}
\end{document}
在这里,您实际上可以使其变得更加复杂,例如测试是否\thisrow{}
为空,然后使用默认值或输入值等。