将矩阵旋转45度并使用ggplot将其可视化

时间:2016-12-13 17:24:29

标签: r plot ggplot2 heatmap

我很容易用ggplot绘制矩阵(因此给出热图),如下所示:

test <- data.frame(start1=c(1,1,1,1,2,2,2,3,3,4),start2=c(1,2,3,4,2,3,4,3,4,4),logFC=c(5,5,1,0,8,0,5,2,4,3))
ggplot(test, aes(start1, start2)) +
  geom_tile(aes(fill = logFC), colour = "gray", size=0.05) +
  scale_fill_gradientn(colours=c("#0000FF","white","#FF0000"), na.value="#DAD7D3")

由于我只有热图的下半部分,因此给出了这个图:

enter image description here

但是我想将矩阵旋转45度,就像我在这里找到的那​​样:Visualising and rotating a matrix。所以, X轴旁边的对角线。但是,他们使用R中没有ggplot的图形。你知道如何用ggplot做到这一点吗?

1 个答案:

答案 0 :(得分:0)

您可以先通过以下功能旋转矩阵(数据框):

rotate <- function(df, degree) {
  dfr <- df
  degree <- pi * degree / 180
  l <- sqrt(df$start1^2 + df$start2^2)
  teta <- atan(df$start2 / df$start1)
  dfr$start1 <- round(l * cos(teta - degree))
  dfr$start2 <- round(l * sin(teta - degree))
  return(dfr)
}

通过

逆时针旋转数据框90度
test2 <- rotate(test, -90)

然后使用相同的代码绘制test2。