R 如何在条形图上使用几何点抖动

R 如何在条形图上使用几何点抖动,r,ggplot2,R,Ggplot2,我试图用不同的颜色绘制一个带有抖动点的条形图。我可以用geom_线段绘制绘图,但我想使用抖动点而不是直线(线段)。这是我的代码: 柱状图数据 创建演示数据集“标记”以绘制抖动点。 我想用抖动点绘制条形图。当我使用geom_点替换geom_段时。抖动实际上是在“dat”数据上,而不是在“mark”数据上。这不是我想要的。我想在“标记”数据上绘制带有抖动点的条形图。 这是我用来绘制绘图的代码: ggplot(data=dat, aes(chromosome, size)) + t

我试图用不同的颜色绘制一个带有抖动点的条形图。我可以用geom_线段绘制绘图,但我想使用抖动点而不是直线(线段)。这是我的代码:

柱状图数据 创建演示数据集“标记”以绘制抖动点。 我想用抖动点绘制条形图。当我使用geom_点替换geom_段时。抖动实际上是在“dat”数据上,而不是在“mark”数据上。这不是我想要的。我想在“标记”数据上绘制带有抖动点的条形图。 这是我用来绘制绘图的代码:

    ggplot(data=dat, aes(chromosome, size)) +
      theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        panel.background = element_blank(), axis.line = element_line(colour = "black")) + 
      geom_bar( stat="identity", fill="grey70") +
      geom_point(data=mark, aes(x=Chr, y=Pos, colour=Type), size=1) + geom_jitter(width=0.5)

感谢您的帮助。

尝试
几何点(数据=标记,aes(x=Chr,y=Pos,颜色=类型),大小=1,位置=位置抖动())
?@Jimbou谢谢。这就是我想要的。
    pos = read.table(text="Chromosome Position
         3   817702
         5  1041685
        11   488717
        12  1556936
        13  1131566
        14  1776463", header=T, stringsAsFactors=F)

    mark <- data.frame()
    for (i in 1:nrow(pos)){ 
        df <- data.frame(Chr=rep(pos$Chromosome[i],100),Pos=sort(sample.int(pos$Position[i],100)))
        mark <- rbind(mark,df)
        }
    mark <- mark[order(mark$Chr,mark$Pos),]
    pp <- replicate(6, diff(c(0, sort(runif(2)), 1)))
    pp <- round(pp %*%diag(pos$Position),0)
    pp[2,] <- pp[2,] +pp[1,]
    pp[3,] <- pp[2,]+pp[3,]
    type <-  replicate(6,sample(LETTERS[1:3],3))
    for (i in 1:length(unique(mark$Chr))){
      for (j in 1:100){
        if (mark$Pos[(i-1)*100+j] >0 & mark$Pos[(i-1)*100+j] <= pp[1,i]) {mark$Type[(i-1)*100+j] <- type[1,i]}
        if (mark$Pos[(i-1)*100+j] >pp[1,i] & mark$Pos[(i-1)*100+j] <= pp[2,i]) {mark$Type[(i-1)*100+j] <- type[2,i]}
        if (mark$Pos[(i-1)*100+j] >pp[2,i] & mark$Pos[(i-1)*100+j] <= pp[3,i]+1) {mark$Type[(i-1)*100+j] <- type[3,i]}
      }
    }
    ggplot(data=dat, aes(chromosome, size)) +
        theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        panel.background = element_blank(), axis.line = element_line(colour = "black")) + 
        geom_bar( stat="identity", fill="grey70") +
      geom_segment(data=mark, aes(x=Chr-0.45, xend=Chr+0.45, y=Pos, 
                       yend=Pos, colour=Type), size=2)
    ggplot(data=dat, aes(chromosome, size)) +
      theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        panel.background = element_blank(), axis.line = element_line(colour = "black")) + 
      geom_bar( stat="identity", fill="grey70") +
      geom_point(data=mark, aes(x=Chr, y=Pos, colour=Type), size=1) + geom_jitter(width=0.5)