R-强制ggplot2中的geom_density()接受df列作为频率(y变量)
我正在尝试使用R-强制ggplot2中的geom_density()接受df列作为频率(y变量),r,ggplot2,geom-bar,R,Ggplot2,Geom Bar,我正在尝试使用ggplot2中的geom\u density制作平滑直方图。问题是,从技术上讲,我所做的并不完全是直方图,所以我遇到了麻烦。具体地说,沿着所需图的x轴是基因组位置,但值可以在任何地方开始和结束。此外,y轴不是精确的计数,而是df中数值向量的内容,轨迹_df_trim$V7,对于我的数据,它是介于0和266之间的强度值 与每次观察相对应的“箱”可能有不同数量的碱基对长,因此箱的大小不一致,箱之间也可能有断裂 我无法让ggplot接受任何类似于轨迹修剪df$V7的y值。另外,如果我让
ggplot2
中的geom\u density
制作平滑直方图。问题是,从技术上讲,我所做的并不完全是直方图,所以我遇到了麻烦。具体地说,沿着所需图的x轴是基因组位置,但值可以在任何地方开始和结束。此外,y轴不是精确的计数,而是df中数值向量的内容,轨迹_df_trim$V7,对于我的数据,它是介于0和266之间的强度值
与每次观察相对应的“箱”可能有不同数量的碱基对长,因此箱的大小不一致,箱之间也可能有断裂
我无法让ggplot接受任何类似于轨迹修剪df$V7的y值。另外,如果我让值=…scaled..,则它是不正确的,因为强度值与观察数不成正比(如果我指定,..scaled..和..count..变量,这就是驱动变量的原因)
因此,在这一点上,我唯一的想法是重新创建数据帧本身,这样就有了统一的bin大小,并且对于每种没有强度的单元类型,每个观测值在df中接收到一个0。但是,我想知道是否有一种方法可以使用当前形式的df生成所需的绘图,即:
head(locus_df_trim)
> head(locus_df_trim)
V2 V3 V5 V7 annot_width
1 CD4+_CD25-_IL17-_PMA- H3K27ac 204738970 103 1042
2 CD4+_CD25-_IL17-_PMA- H3K27ac 204738517 40 250
3 CD4+_CD25-_IL17-_PMA- H3K36me3 204738136 158 515
4 CD4+_CD25-_IL17-_PMA- H3K36me3 204738702 104 709
5 CD4+_CD25-_IL17+ H3K4me1 204738665 226 1246
6 CD4+_CD25-_IL17+ H3K4me1 204741441 73 397
...
43 Tmem_Primary_Cells H3K27ac 204738908 34 390
44 Tmem_Primary_Cells H3K27me3 204738382 28 194
45 Tmem_Primary_Cells H3K4me1 204738766 124 424
46 Tmem_Primary_Cells H3K4me1 204741433 48 423
47 Tmem_Primary_Cells H3K4me1 204739411 40 215
48 Tmem_Primary_Cells H3K4me1 204737304 33 210
我能够生成接近所需的绘图,但尝试指定y值与V7成比例(如下所示)会导致错误:
Error in eval(substitute(list(...)), `_data`, parent.frame()) :
object 'y' not found
要清楚,所需的绘图具有以下属性:
我想制作具有以下功能的平滑直方图:
- 给定观测值的箱从一列中某个值的x坐标开始,到另一列中某个值结束
- 每个单元格类型(在下面的“轨迹”\u trim\u df$V2列中)都有不同的颜色)
- 每个峰值的高度(y方向)与df列中的值成正比(轨迹_df_trim$V7)
library("ggplot2")
base_plot<-ggplot(data=locus_df_trim, aes(x=V5, y=V7, fill=V2, size=V7)) + geom_density(alpha=0.3, adjust=0.4, kernel="gaussian")
base_plot<-base_plot + geom_vline(xintercept = 204738919, size = 1, colour = "#FF3721", linetype = "dashed")
base_plot<-base_plot + theme_classic(); base_plot
库(“ggplot2”)
base_plot能否举例说明示例数据集的用途?或者类似的图像?如前所述,这是非常令人困惑的-您的“箱子”听起来更像是组,如果它们不是XYE上的连续变量,那么它们是100%组。我希望这段locus_df_trim
足以帮助人们看到数据。但如果你认为你有时间处理,我可以制作数据集。非常感谢您的回复。