Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-强制ggplot2中的geom_density()接受df列作为频率(y变量)_R_Ggplot2_Geom Bar - Fatal编程技术网

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
足以帮助人们看到数据。但如果你认为你有时间处理,我可以制作数据集。非常感谢您的回复。