我正在尝试重新创建一些色谱图(具有制表符分隔的数据),但我需要获取沿 x 轴具有一些垂直分隔(线/框)的数字,如下所示
该图像是使用色谱系统附带的软件创建的,但生成的图形/图表相当丑陋,我现在只需要数字。谢谢!
答案1
我建议您使用extra x ticks
选项。您可以使用 提供刻度位置列表extra x ticks={<list>}
,并使用 提供相应的标签extra x tick labels={<list>}
。可以使用 指定额外刻度的样式every extra x tick/.style={...}
。您可以使用“正常”刻度可用的所有选项,因此您可以设置x tick label as interval
在两个刻度标记之间绘制标签,使用 控制长度major tick length
,使用 控制刻度标记的样式every tick/.style
。可以使用 设置标签的样式xticklabel style
。
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:30, samples=100,xtick align=outside, enlarge x limits=false, enlarge y limits=upper,
max space between ticks=40,
extra x ticks={0,4,...,30},
extra x tick labels={1,...,7},
every extra x tick/.style={
xtick align=inside,
x tick label as interval=true,
major tick length=5ex,
every tick/.style={
densely dashed,
red,
},
xtick pos=left,
xticklabel style={
red,
anchor=south
}
},
xlabel=Volume / ml,
after end axis/.code={
\node at (rel axis cs:1,0) [anchor=south west, align=left, red] {Sample\\number};
}
]
\addplot [blue, thick] {(abs(x-18)<3)*(1+cos((x-18)*60))};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
可能类似这样的方法可以奏效(见下文)。它使用 pgfplots 和轴代码。这样你就可以使用轴坐标系。\foreach
在 pgfmanual 中有说明。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
after end axis/.code={%
\foreach \x / \lab in {-4/1,-3/2,-2/3,-1/4,0/5,1/6,2/7,3/8,4/9}%
{\draw[red,dashed] (axis cs: \x,0) -- (axis cs: \x,5);%
\node[xshift=10pt] at (axis cs:\x,3) {\lab};}
}
]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\end{document}