2016-12-02 5 views
0

ヒートマップを描きたいが、x軸(およびy軸)の単位のサイズは変わるはずです。ここではサンプルコード:ggplot 2ヒーティングマップのベクトル化

users = rep(1:3,3) 
Inst = c(rep("A",3),rep("B",3),rep("C",3)) 
dens = rnorm(9) 
n_inst = c(3,3,3,2,2,2,1,1,1) 
df <- data.frame(users, Inst, dens, n_inst) 

1  1 A 1.2521487  3 
2  2 A -0.1013088  3 
3  3 A 1.5770535  3 
4  1 B 1.1093957  2 
5  2 B 1.1059166  2 
6  3 B 0.6884662  2 
7  1 C -0.3864710  1 
8  2 C -1.0216373  1 
9  3 C 0.4500778  1 

z <- ggplot(df, aes(Inst, users)) + geom_tile(aes(fill = dens)) 
z + scale_x_discrete(breaks = n_inst) 

enter image description here は、これはヒートマップを描画しますが、Instのすべてのユニットは、同じサイズを有しています。 Aは、Cの3倍、の幅の2倍のBになります。だから、n_instに単位の幅を与えたい。

私はscale_discretを試してみましたが、それは

は、事前にありがとうそれをしていません。

答えて

1

あなたはこれを試すことができます。

ggplot(df, aes(Inst, users)) + geom_tile(aes(fill = dens, width=n_inst)) 

enter image description here

+0

グレート、ありがとうございました。 y軸のsimularコマンドとは何ですか? –

+0

幅の代わりに高さです –