使用 Tikz 在坐标附近添加标签

使用 Tikz 在坐标附近添加标签

我搜索了两个多小时,还是没找到办法把标签放在坐标旁边。我想把 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 coordspgfplots默认情况下会将 y 值放置在绘制点旁边的节点中。因此,您还需要告诉pgfplots它应该在节点中添加什么,这是使用point meta键完成的。

当您直接在坐标列表中提供文本时,例如

(0,150.7) [A]

您需要添加point meta=explicit symbolicaxis选项中。explicit表示“点元”,即节点中的文本,位于数据流中,而symbolic表示文本应该不是被解析并打印为数字。换句话说,如果您的标签是文本,请使用。手册第 4.8.2 节列出了 的explicit symbolic其他选项point metapgfplots点元数据的用户输入格式

下面的完整示例。

在此处输入图片描述

\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}

相关内容