如何在geom_tile ggplot中保留瓷砖的顺序

3

我正在尝试制作geom_tile图,并且在尝试保留瓷砖的顺序时遇到了困难。这是一个示例数据集

head(data2.2)
      wt_mt_up                                         GO ont
1285 10.692307                          proline transport  BP
784  10.319457        salicylic acid biosynthetic process  BP
743   9.550895               systemic acquired resistance  BP
1729  8.563280   response to endoplasmic reticulum stress  BP
841   7.910318 defense response, incompatible interaction  BP
1823  7.765033              defense response to bacterium  BP

p2 <- ggplot(data2.2, aes(x=ont, y=GO, fill = wt_mt_up)) + 
      geom_tile() +
      scale_fill_gradient(legend_title, low="white", high="red") + theme(axis.text.x = element_text(angle = 45, hjust = 1, size = 12)) + theme(axis.text.y = element_text(hjust = 1, size = 12))

p2

GO_plot

从输出的图中可以看出,尽管GO =“脯氨酸转运”具有最大值10.692307,但它位于图的中间位置。其他情况也是如此。我希望它们按高到低的值堆叠。


你需要告诉ggplot绘图的顺序,可以通过使用reorder(例如y=reorder(GO, wt_mt_up))来明确指定,也可以通过重新排列数据中的因子来隐式指定。 - Heroka
@Heroka 太棒了,它起作用了...感谢你的提示。 - upendra
1个回答

4
以下是针对上述问题的答案:
p2 <- ggplot(data2.2, aes(x=ont, y=reorder(GO, wt_mt_up), fill = wt_mt_up)) + 
      geom_tile() +
      scale_fill_gradient(legend_title, low="white", high="red") +        
      theme(axis.text.x = element_text(angle = 45, hjust = 1, size = 12)) +  
      theme(axis.text.y = element_text(hjust = 1, size = 12))
p2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接