在 R 中获取连续的线图

Get continous line plot in R

我想绘制类似附图的图。它来自这篇论文http://www.nature.com/nature/journal/v488/n7410/extref/nature11319-s1.pdf(图11D)。我知道它是在 R 中完成的,但我不知道 package/function.

这是我数据的一个子集:

SampleID prevo.bact
37.TO.O -3.00468736
31.TO.V -3.42291741
06.BO.VG -2.56462361
37.PR.O  0.91296148
03.BA.O  0.02868464
30.BO.V -0.24479930

我以新月形排列这些值,并尝试使用 plot

绘制它们
mydata.ordered=order(my.data$prevo.bact) 
plot(my.data$prevo.bact[my.data.ordered])

这与我想要得到的输出非常接近,但我不知道如何更改获得垂直线的点(绘图中没有一种可用的类型是这样的)以及如何根据 class 矢量 clD

更改颜色
clD = unlist(lapply(strsplit(row.names(my.data),'[.]'),function(x){x[[3]]}))
names(clD)=row.names(my.data)

此外,我不希望点之间空 space(如附图所示,我想要一个连续体)。 我怎样才能得到类似的东西?大概剧情基本不是这样的...

谢谢 弗朗西斯卡

我试一试。我认为情节看起来连续的原因很简单,就是有足够多的点来制造连续的错觉。为了有足够的分数,我不得不自己创建一些示例数据,因为你给的六个分数不够。

library(ggplot2)
my.data <- data.frame(SampleID=rep(c("37.TO.O","31.TO.V","06.BO.VG","37.PR.O","03.BA.O","30.BO.V"),times=30),
                  prevo.bact=rnorm(180,0,3),
                  stringsAsFactors=FALSE)
my.data$clD <- sapply(strsplit(my.data$SampleID,'[.]'),function(x){x[[3]]})
my.data.ordered <- my.data[order(my.data$prevo.bact),]
my.data.ordered$num <- 1:nrow(my.data)
ggplot(my.data.ordered,aes(num,prevo.bact)) + geom_point(size=5,shape="|",aes(col=clD)) + theme_classic()

我使用了 ggplot,因为我不知道如何使用基本图形为数据点着色。选项 shape="|" 使用垂直线而不是点。

这是我得到的数字: