在尝试解决我的question yesterday时,我想到了对数据进行争论,以便可以正确地绘制数据点而无需求助于geom_step
,而wrangleBdg<-function(dfInput){
starts<-subset(dfInput,select=c("start","value"))
ends<-subset(dfInput,select=c("end","value"))
colnames(ends) <- c("start", "value")
dataWrite <- rbind(data.frame(starts, index = 1:nrow(starts)), data.frame(ends, index = 1:nrow(ends)))
dataWrite <- dataWrite[order(dataWrite$index), c("start", "value")]
dataPlot<-ggplot(dataWrite,aes(x=start,y=value))+geom_area() + xlim(chromstart, chromend)
return(dataPlot)
}
p3<-wrangleBdg(df)
print(p3)
不会填充床铺图下的区域。
我生成了以下代码,该代码应生成阴影bedgraph图,类似于output produced by the plotBedgraph
function。
geom_area
然而,它会产生如下所示的乱码输出。请注意高于2的值,其中数据的最大高度为1.377:
将geom_line
功能更改为 chrom start end value
chr13 0 882 0.00000
chr13 882 885 0.02968
chr13 885 886 0.00000
chr13 886 887 0.02968
chr13 887 888 0.00000
chr13 888 890 0.02968
chr13 890 892 0.00000
chr13 892 894 0.09667
chr13 894 908 0.00000
chr13 908 909 0.02968
chr13 909 923 0.00000
chr13 923 926 0.02968
chr13 926 927 0.09667
chr13 927 928 0.02968
chr13 928 933 0.09667
chr13 933 42032 0.00000
chr13 42032 42035 0.52301
chr13 42035 42056 0.45043
chr13 42056 42059 0.52301
chr13 42059 42063 0.45043
chr13 42063 42065 0.38020
chr13 42065 42075 0.29973
chr13 42075 42078 0.15975
chr13 42078 42079 0.23307
chr13 42079 42080 0.29973
chr13 42080 42086 0.38020
chr13 42086 42087 1.28112
chr13 42087 42114 1.18640
chr13 42114 42116 1.28112
chr13 42116 42123 1.37702
chr13 42123 42127 1.28112
chr13 42127 42128 1.18640
chr13 42128 42139 1.09943
chr13 42139 42142 1.07272
chr13 42142 42144 1.09943
chr13 42144 42147 1.18640
chr13 42147 42148 0.29973
chr13 42148 42150 1.18640
chr13 42150 42152 1.28112
chr13 42152 42162 0.38020
chr13 42162 42167 0.29973
chr13 42167 42168 0.23307
chr13 42168 42171 0.29973
chr13 42171 42173 0.38020
chr13 42173 42181 0.29973
chr13 42181 42186 0.45043
chr13 42186 42187 0.52301
chr13 42187 43000 0.00000
会删除乱码,但我们会回到正方形,并且没有阴影。
用于生成绘图的数据如下所示:
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(1, 14).Value <> "" Then
CommandButton2.Visible = True
Else
CommandButton2.Visible = False
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
答案 0 :(得分:2)
尝试将position = "identity"
添加到geom_area
命令:
#original:
dataPlot<-ggplot(dataWrite,aes(x=start,y=value))+geom_area() + xlim(chromstart, chromend)
#modified version:
dataPlot<-ggplot(dataWrite,aes(x=start,y=value))+geom_area(position = "identity") + xlim(chromstart, chromend)
<强>解释强>
看看你的dataWrite数据帧。除了第一个&amp;最后一行,在起始列中每个数字的值列中有2个不同的数字。
> head(dataWrite %>% arrange(start))
start value
1 0 0.00000
2 882 0.00000
3 882 0.02968
4 885 0.02968
5 885 0.00000
6 886 0.00000
因此,当您使用geom_area
绘制x = start, y = value
时,其默认位置调整会将一个值叠加在另一个值之上。在原始图(2.658)中观察到的最大值是两个值在start = 42116(1.281和1.377)加在一起的结果。