ggplot2 tile的列和行顺序

时间:2015-10-22 01:26:02

标签: r ggplot2

我有这段代码:

library(ggplot2)

tableau.m <- melt(tableau)

ggplot(tableau.m, aes(variable, Name)) + 
      geom_tile(aes(fill = value), colour = "white") + 
      scale_fill_distiller(palette = "Spectral") +
      theme(axis.text.x = element_text(angle = 270))

with tableau:

Name,NGO,A,E,D,C
NGO,10,5,14,3,0
A,5,21,6,1,0
E,14,6,19,6,4
D,3,1,6,7,1
C,0,0,4,1,3

哪位给我这个:

enter image description here

现在,这是一个邻接矩阵,我需要行和列在对角线上相遇。出于某种原因,行按字母数字顺序排序,而列保持其原始顺序。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这是你可以尝试的答案。我在ggplot之外重构了一些东西。这是个人偏好,因为我希望能够检查一下,过去我犯了很多错误。

#set vector of levels you want
mylevels <- tableau$Name

#reorder factors
tableau.m$Name <- factor(tableau.m$Name,levels=mylevels)
tableau.m$variable <- factor(tableau.m$variable, levels=mylevels)

#plot
ggplot(tableau.m, aes(variable, Name)) + 
  geom_tile(aes(fill = value), colour = "white") + 
  scale_fill_distiller(palette = "Spectral") +
  theme(axis.text.x = element_text(angle = 270))

enter image description here