我想要绘制附图像。它来自本文http://www.nature.com/nature/journal/v488/n7410/extref/nature11319-s1.pdf(图11D)。我知道它是在R中完成的,但我不知道包/功能。
这是我数据的一个子集:
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
我以新月形式排序了这些值,并尝试使用情节
绘制它们mydata.ordered=order(my.data$prevo.bact)
plot(my.data$prevo.bact[my.data.ordered])
这与我想要获得的输出非常接近,但我不知道如何更改获得垂直线的点(图中没有一种类型可用)和如何根据类向量clD
clD = unlist(lapply(strsplit(row.names(my.data),'[.]'),function(x){x[[3]]}))
names(clD)=row.names(my.data)
此外,我不希望这些点之间有空的空间(如附图所示,我喜欢连续体)。 我怎样才能得到类似的东西?可能基本情节不是......
由于 弗朗西斯
答案 0 :(得分:3)
我试一试。我认为情节看起来连续的原因很简单,就是有足够的点来创造连续性的幻觉。为了获得足够的分数,我必须自己创建一些样本数据,因为你提供的六点是不够的。
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="|"
使用垂直线而不是点。
这是我得到的数字: