黄土线散​​布图,黄土不显示给定区域的线

时间:2012-05-10 08:18:54

标签: r region scatter loess

我在这里绘制染色体的长度值

enter image description here

没有点的中间区域不包含数据,不应该得到黄土线。 如何修改我的代码以阻止该区域的黄土线? 数据是连续的但我可以添加行来标记具有一些特殊值的空白区域或添加带有标签的列?但如何在命令中使用它?

我当前的命令:

library(IDPmisc)

# plot settings (edit here)
spanv<-0.05
pointcol1="#E69F00"
pointcol2="#56B4E9"
pointcol3="#009E73"
points=20
linecol="green"
xlabs=paste(onechr, " position", " (loess-span=", spanv, ")", sep="")

data1<-NaRV.omit(data[,c(2,7)]) # keep only x and y for the relevant data 
                                # and clean NA and Inf
ylabs='E / A - ratio'
p1<-ggplot(data1, aes(x=start, y=E.R)) +
ylim(0,5) +
geom_point(shape=points, col=pointcol1, na.rm=T) +
geom_hline(aes(yintercept=1, col=linecol)) +
geom_smooth(method="loess", span=spanv, fullrange=F, se=T, na.rm=T) +
xlab(xlabs) +
ylab(ylabs)

1 个答案:

答案 0 :(得分:5)

我会做两件事之一:

  1. loess()之外执行ggplot()拟合,分别预测这两个区域,并将每组预测添加到具有自己的geom_line()图层的图中。
  2. 与上述类似,但这次是在ggplot()范围内的操作。使用geom_smooth()向图中添加两个图层,而不是一个图层,但重要的是更改提供给每个图层的data参数,以仅引用一个或另一部分数据。
  3. 对于后者,可能是这样的:

    ....
    geom_smooth(data = data[1:n, ], method="loess", span=spanv, fullrange=FALSE, 
                se=TRUE, na.rm=TRUE) +
    geom_smooth(data = data[m:k, ], method="loess", span=spanv, fullrange=FALSE, 
                se=TRUE, na.rm=TRUE)
    ....
    

    其中nm以及k是指标记集合1的结尾以及集合2的开始和结束以及需要由您定义或提供的索引直接