![使用 Tikz 在坐标附近添加标签](https://linux22.com/image/437789/%E4%BD%BF%E7%94%A8%20Tikz%20%E5%9C%A8%E5%9D%90%E6%A0%87%E9%99%84%E8%BF%91%E6%B7%BB%E5%8A%A0%E6%A0%87%E7%AD%BE.png)
我搜索了两个多小时,还是没找到办法把标签放在坐标旁边。我想把 A 和 B 放在标记旁边,但是 ******** - 这根本行不通,而且我太笨了,看不懂手册和示例... 任何帮助我都非常感谢!
\documentclass[12pt,titlepage,twoside,BCOR=1.2cm]{scrreprt}
%\documentclass[12pt,achemso]{article}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{pgfplots}
\usepackage{tikz}
\begin{figure}[htb]
\begin{tikzpicture}
[every mark/.append style={mark size=3pt}]
\begin{axis}
[
,width={\textwidth}
,height=5cm
%,xlabel=Dithiolenliganden
,ylabel=Cool Axis
,xtick=data,
,ymin=145,ymax=154,
,ytick={146,148,150,152},
%,nodes near coords
%,meta=label
%,nodes near coords style={anchor=west,}
,xticklabels={A,B,C,D,E}
]
\addplot+[only marks,red,solid,fill=red,mark=diamond
]
coordinates
{
(0,150.7) %[A]
(1,148.6) %[A]
(2,146.5) %[B]
(3,148.4) %[B]
(4,150.3)} %[B]
;
\addplot+[only marks,blue,mark=x] coordinates
{
(0,153.3) %[A]
(1,150.3) %[A]
(2,148.5) %[B]
(3,151.6) %[A]
(4,151.9)} %[B]
;
\end{axis}
\end{tikzpicture}
\end figure
答案1
当您添加 时nodes near coords
,pgfplots
默认情况下会将 y 值放置在绘制点旁边的节点中。因此,您还需要告诉pgfplots
它应该在节点中添加什么,这是使用point meta
键完成的。
当您直接在坐标列表中提供文本时,例如
(0,150.7) [A]
您需要添加point meta=explicit symbolic
到axis
选项中。explicit
表示“点元”,即节点中的文本,位于数据流中,而symbolic
表示文本应该不是被解析并打印为数字。换句话说,如果您的标签是文本,请使用。手册第 4.8.2 节列出了 的explicit symbolic
其他选项point meta
pgfplots
点元数据的用户输入格式。
下面的完整示例。
\documentclass[12pt,titlepage,twoside,BCOR=1.2cm]{scrreprt}
\usepackage{pgfplots}
\begin{document}
\begin{figure}[htb]
\begin{tikzpicture}
[every mark/.append style={mark size=3pt}]
\begin{axis}
[
,width={\textwidth}
,height=5cm
%,xlabel=Dithiolenliganden
,ylabel=Cool Axis
,xtick=data,
,ymin=145,ymax=155, % <-- increased ymax a bit to make room for the labels
,ytick distance=2, % <-- ytick every 2 units
,nodes near coords
,xticklabels={A,B,C,D,E}
,point meta=explicit symbolic
]
\addplot+[only marks,red,solid,fill=red,mark=diamond
]
coordinates
{
(0,150.7) [A]
(1,148.6) [A]
(2,146.5) [B]
(3,148.4) [B]
(4,150.3) [B]
} % <-- in your code this bracket was before the last [B]
;
\addplot+[only marks,blue,mark=x] coordinates
{
(0,153.3) [A]
(1,150.3) [A]
(2,148.5) [B]
(3,151.6) [A]
(4,151.9) [B]
}
;
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}