问题描述
我试图通过展示特定化合物及其保留时间来可视化我的初步数据。我想要的目标是一个能够在 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
,但我使用的是 ggplot2
和 tidyr
。
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()