2017-06-10 12 views
0

dからaではなく、aからdまでのy軸を示したいと思います。この場合、scale_y_discrete()は機能しません。誰かが逆転する方法を知っていますか?ありがとう。`geom_raster()`でy軸を逆にする方法は?

library(ggplot2) 
m=3 
n=4 
dat=expand.grid(x=letters[seq_len(m)], y=letters[seq_len(n)]) 
dat$z=rnorm(m*n) 
ggplot(dat, aes(x=x, y=y, fill=z)) + geom_raster() 
+0

'ggplot'に入力する前にデータを並べ替えることができますか? –

答えて

0

一般的に、set.seed()を使用するのが最善です。その結果、人々は結果を正確に再現できます。つまり、(1)ggplotコールで因子レベルを並べ替えるか、(2)因子レベルを並べ替えるかの2つの選択肢があります。一般に、私はあなたのggplotコールを簡素化し、何が起こっているかをより詳細に制御できるので、手元にあるデータを編集することを好みます。

データ:ggplotで

set.seed(1) 
library(ggplot2) 
m=3;n=4 
dat=expand.grid(x=letters[seq_len(m)], y=letters[seq_len(n)]) 
dat$z=rnorm(m*n) 

オプション1並べ替え:データで

ggplot(dat, aes(x=x, y=y, fill=z)) + geom_raster() + 
     scale_y_discrete(limits = rev(levels(dat$y))) 

オプション2並べ替え:

dat$y <- factor(dat$y, levels = rev(levels(dat$y))) 
ggplot(dat, aes(x=x, y=y, fill=z)) + geom_raster() 

両方とも生成する必要があります:enter image description here

関連する問題