在 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="|"
使用垂直线而不是点。
这是我得到的数字:
我想绘制类似附图的图。它来自这篇论文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="|"
使用垂直线而不是点。
这是我得到的数字: