旋转ggplot瓷砖热图的上三角形

我画了这样的热图:

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")

这绘制了热图的上三角形.我想绘制的是相同的三角形,但是将斜边作为x轴.

《旋转ggplot瓷砖热图的上三角形》

我该怎么办?

编辑:添加了可重复的示例

library(ggplot2)

# dummy data
df1 <- mtcars[, c("gear","carb", "mpg")]

# normal tile plot
gg1 <- ggplot(df1, aes(gear, carb, fill = mpg)) +
  geom_tile() +
  xlim(c(1, 10)) +
  ylim(c(1, 10)) +
  theme_void() +
  theme(legend.position = "none")

《旋转ggplot瓷砖热图的上三角形》

预期输出(手动旋转):

《旋转ggplot瓷砖热图的上三角形》

使用基础图像()的相关文章:
Visualising and rotating a matrix

可能的解决方案示例代码是在LDheatmap package使用网格.

最佳答案 使用
this solution将输出剪切到底部,因此解决方法是添加额外的绘图边距然后使用grid :: viewport()来旋转:

library(ggplot2) #ggplot2_2.2.1
library(grid)

gg1 <- ggplot(df1, aes(gear, carb, fill = mpg)) +
  geom_tile() +
  xlim(c(1, 10)) +
  ylim(c(1, 10)) +
  theme_void() +
  # add extra margins
  theme(legend.position = "none",
        plot.margin = unit(c(1, 1, 1, 1), "cm")) 

# then rotate
print(gg1, vp = viewport(angle = 45))

《旋转ggplot瓷砖热图的上三角形》

点赞