如何创建显示特定离子的时间范围或确切时间的图表?

问题描述

我试图通过展示特定化合物及其保留时间来可视化我的初步数据。我想要的目标是一个能够在 x 轴上显示保留时间和在 y 轴上显示离子质量的图表。一些离子具有精确的保留时间或在分析仪器中洗脱的时间范围。

在下面的示例数据框中,QIon 是离子质量,RT 是时间范围(如果有),而 RT_Center 是确切的保留时间。一些化合物重叠,因为质量相同,但保留时间不同,因此图表上的时间范围可能在同一 y 轴上,但在 x 轴上不同。如果您需要任何其他信息,请告诉我。

Compound       QIon   RT      RT_Center

Biphenyl       154    30-32
Fluorene       166            37.1
Dibenzofuran   168    31-34
Acenaphthene   154            34.14

解决方法

我以我更习惯的方式编写了这段代码,但我也可能会在此处添加一些其他方式。

我加载了整个库 tidyverse,但我使用的是 ggplot2tidyr

library(tidyverse) # Or ggplot2 and tidyr

chem %>%
  separate(col = RT,sep = "-",into = c("Beginning","End"),convert = TRUE) %>%
  ggplot(aes(y = QIon))+
  geom_point(aes(x = RT_Center))+
  geom_errorbar(aes(xmin = Beginning,xmax = End))+
  theme_minimal()

更多定制取决于您。

这是什么意思:首先,我将列 RT 分隔为开头和结尾。这样,我可以使用这些列来创建范围和点(检查 ?geom_errorbar 以查看其他 geom)。

我相信这就是你的意思。由于既有范围又有单点,我认为同时使用两者是最合适的。如果这不是您要找的东西,请随意说出来。

这里有一个不使用管道的方法,如果它让你更舒服:

library(ggplot2)

chem2 <- tidyr::separate(chem,col = RT,convert = TRUE)
ggplot(chem2,aes(y = QIon))+
  geom_point(aes(x = RT_Center))+
  geom_errorbar(aes(xmin = Beginning,xmax = End))+
  theme_minimal()