代码之家  ›  专栏  ›  技术社区  ›  Jessica

在热图顶部绘制散点图

  •  0
  • Jessica  · 技术社区  · 6 年前

    我想在热图上绘制散点图。我用ggplot制作了每种类型的绘图。

    散点图:

    lambir_t <- ggplot(l_tree, aes(x=xcoord, 
    [![enter image description here][1]][1]y=ycoord))+geom_point(col='red')+xlim(c(0, 1040))+ylim(c(0, 500))
    

    enter image description here

    热图:

    lambir_p <- ggplot(dfo, aes(x,y,
    fillz))+geom_tile(color='white')+scale_fill_gradient(low='white', 
    high='blue')+labs(x='x', y='y', title='Lambir Hills', 
    fill='Phosphorus')
    

    enter image description here

    现在我想把散点图放在热图的顶部,这样我就可以看到这些点是如何随着磷浓度的变化而变化的。有什么办法可以做到这一点吗?

    编辑: enter image description here

    来自@Phlteman的解决方案奏效了。这就是我得到的。我在调整点的大小时遇到了问题(设置为1或100时看起来是一样的),但除此之外,这正是我想要的。

    2 回复  |  直到 6 年前
        1
  •  2
  •   phalteman Andryas Waurzenczak    6 年前

    可以使用不同的数据集将多个图层添加到绘图中。像通常那样添加点,但指定数据参数。如果没有数据,很难知道,但像这样的事情可能会帮到你:

    ggplot(dfo, aes(x,y,fillz)) + 
      geom_tile(color='white') + 
      scale_fill_gradient(low='white', high='blue') + 
      labs(x='x', y='y', title='Lambir Hills', fill='Phosphorus') +
      geom_point(data=l_tree, aes(x=xcoord, [![enter image description here][1]][1], y=ycoord)), col='red')
    
        2
  •  0
  •   sbmrtnz    5 年前

    我发现使用相同的数据集,但在每一层中显式显示数据集,可以很容易地在平铺顶部绘制点。

    颜色按预期工作。 奇怪的是,当为所有尺寸设置不同的值时,尺寸效果更好

    ggplot(data = mydata, aes(x = baseofheatmap, y = heightofheatmap)) + 
      geom_tile(data = mydata, 
                aes(fill = valuetoheatmap)) +
      geom_point(data = mydata, 
                 aes(x = valuetopoint, 
                     y = heightofheatmap, 
                     size = valuetopoint, 
                     color = "red"))