代码

代码

我想注释 .csv 频谱的局部最大值。我的目标是制作一个类似于我使用的 matplotlib 脚本的乳胶图,它给出了以下结果: 在此处输入图片描述

我绘制了同样的光谱此 .csv 文件使用乳胶:

在此处输入图片描述

现在假设我知道峰的坐标(例如第一峰 801.3,6066)我怎样才能像 matplotlib 版本那样用箭头注释偷看内容。当然我可以使用:

\draw [<-] (30,450) -- (40,460);

但对我来说这些数字毫无意义,我必须尝试多次才能找到正确的值。我想使用绘图的参考系统,这样我就可以写下第一个峰值的示例:

\draw [<-] (801.3,6066) -- (821.3,6086);

我怎样才能切换到它?

\documentclass[10pt,twocolumn]{article} 
\usepackage{graphicx}
\usepackage{pgfplots}
\usepackage{tikz}


\begin{document}

\begin{tikzpicture}
\begin{axis}
\addplot[line width = 0.5pt] table [mark=none,col sep=comma,] {cicloexane.csv};
\draw [<-] (30,450) -- (40,460);
\end{axis}
\end{tikzpicture}

\end{document}

答案1

您可以使用(axis cs:x,y)以下要点:

\documentclass[10pt,twocolumn]{article} 
\usepackage{graphicx}
\usepackage{pgfplots}
\usepackage{tikz}


\begin{document}

\begin{tikzpicture}
\begin{axis}[]
\addplot[line width = 0.5pt] table [mark=none,col sep=comma,] {cicloexane.csv};
\draw [<-] (axis cs:801.3,6066)-- +(10pt,10pt) node[right] {here};
\end{axis}
\end{tikzpicture}

\end{document}

结果:

结果

答案2

您可以使用drawpathnode配置来注释绘图坐标,也可以使用pin节点选项并根据您的要求进行配置。

下面是一个例子:

代码

\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}%http://www.ctan.org/pkg/pgfplots

\newcommand\annotate[1]{\drawannotate(#1)}%Command to produce annotations based on path
\def\drawannotate(#1,#2){
    \path (axis cs:#1,#2)-- +(5pt,5pt) node[rotate=60,scale=.3,pos=.25] {\textless} node[font=\tiny] {#2};
}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[ymax = 7000]
            \addplot[line width = 0.5pt] table [mark=none,col sep=comma] {cicloexane.csv};
            \annotate{801.345,6116}%Using the command, argument are coordinates
            \annotate{1028.607,3106}
            \annotate{1157.473,2076}
            \annotate{1266.954,2942}
            \annotate{1444.418,2648}
        \end{axis}
    \end{tikzpicture}

    \tikzset{pin distance=6pt, every pin edge/.style={<-,shorten >=-2pt,shorten <=-3pt}, every pin/.append style={font=\tiny}}%Setting pin style
    \begin{tikzpicture}
        \begin{axis}[ymax = 7000]
            \addplot[line width = 0.5pt] table [mark=none,col sep=comma] {cicloexane.csv};
            \node[font=\tiny,pin= above right:{6116}] at (axis cs:801.345,6116) {};
            \node[font=\tiny,pin= above right:{3106}] at (axis cs:1028.607,3106) {};
            \node[font=\tiny,pin= above:{2076}] at (axis cs:1157.473,2076) {};
            \node[font=\tiny,pin= above right:{2942}] at (axis cs:1266.954,2942) {};
            \node[font=\tiny,pin= above right:{2648}] at (axis cs:1444.418,2648) {};
        \end{axis}
    \end{tikzpicture}
\end{document}

结果

在此处输入图片描述

相关内容