【问题标题】:Scatter plot with vertical lines - lollipop plot带有垂直线的散点图 - 棒棒糖图
【发布时间】:2022-01-08 01:19:47
【问题描述】:

我想建立一个像这样的散点图:http://www.cbioportal.org/public-portal/images/previews/tp53_mutations.png,其中每个点都有一个圆+垂直线。

我在下面找到的最接近的东西,来自library(scatterplot3d) 的 3D 散点图,但我只有 x,y。

您对库/函数/选项有什么建议吗?

【问题讨论】:

    标签: r plot bioinformatics


    【解决方案1】:

    使用ggplot2,例如:

    library(ggplot2)
    
    ggplot() + 
      geom_segment(aes(x = disp, xend = disp, y = 0, yend = wt), data = mtcars) +
      geom_point(aes( x = disp, y = wt), colour = "red", size = 6, data = mtcars) 
    

    【讨论】:

      【解决方案2】:

      在基本图形中也相当容易(y 轴下方的彩色框有点棘手):

      op <- par(ps=10)
      
      par(mar=c(2, 3.5, 2, 1))
      plot(x, y, ylim=c(-10, max(y)), t="n", axes=FALSE, ann=FALSE)
      axis(1)
      axis(2, at=pretty(c(0, max(y))))
      mtext("# Mutations", side=2, line=2.5)
      mtext("P53_Human", side=3, line=0.5, adj=0, font=2)
      segments(x0=x, y0=y, y1=0, col=8)
      points(x, y, pch=21, col=1, bg=2)
      
      usr <- par()$usr
      rect(usr[1], -8, usr[2], -1, col=8, border=NA)
      rect(10, -10, 30, 1, col=rgb(0,1,0), border=rgb(0,0.8,0))
      text(20, -5, label="P53", col="white")
      rect(90, -10, 280, 1, col=rgb(1,0,0), border=rgb(0.8,0,0))
      text(180, -5, label="P53", col="white")
      rect(320, -10, 360, 1, col=rgb(0,0,1), border=rgb(0,0,0.8))
      text(340, -5, label="P53", col="white")
      
      par(op)
      

      【讨论】:

        【解决方案3】:

        如所问的仅圆和垂直线的最简单解决方案:

        vnum2 = runif(50, 0,1)
        plot(1:50, vnum2)
        segments(1:50, 0, 1:50, vnum2)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多