2016-12-12 5 views
3

の上部の三角形を回転させます。私がプロットしたいのは、同じ三角形ですが、斜辺をx-axisとして持っています。は、私はこのようなヒートマップをプロットしましたggplotタイルヒートマップ

enter image description here

はどのように私はそれを行うのでしょうか?


編集:を追加しました再現性の例

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

enter image description here

の予想される出力(手動で回転):

enter image description here

関連たちを投稿INGベースプロットimage()Visualising and rotating a matrix

解決策の例コードがLDheatmap packagegridを使用しています。 this solutionを使用して

+0

@Gregor私は、彼らが/ Iが45度をしたいと思います。 – zx8754

+1

あなたはこれを囲んで頂くでしょうが、解決できるならば、[this Q](https://stackoverflow.com/questions/24312713/rotate-a-ggplot2-plot-object)への@ baptisteの答えはあなたを閉じるでしょう。クリッピングの問題。 – BrodieG

+0

@BrodieG確かに十分に近いですが、問題がクリッピングされます。 – zx8754

答えて

0

は下部にクリップされた出力を取得し、その問題を回避するには、余分なプロットマージンはその後、回転し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)) 

enter image description here

関連する問題