我想注释 .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
您可以使用draw
、path
或node
配置来注释绘图坐标,也可以使用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}