3

負の数値を含むデータ セットのヒート マップを作成しようとしています。

Ne      BR         Error  
10000   0.00001    1.62  
10000   0.000001  -1.03  
10000   0.0000001 -0.124  
100000  0.00001   36.73  
100000  0.000001   5.86  
100000  0.0000001 -0.79  
1000000 0.00001   -8.335  
1000000 0.000001  39.465  
1000000 0.0000001  2.59  

私はこのコードを使用しました:

library(ggplot2)  
data = read.csv('full_path')  
(p <- ggplot(data[1:9,], aes(Ne, BR)) +
  geom_tile(aes(fill=Error), colour="white") + 
  scale_fill_gradient(low="white", high="black") + scale_x_log('Ne') +    
  scale_y_log('Birth Rate') + opts(axis.ticks = theme_blank()))  

これにより、優れたヒートマップが生成されますが、凡例では負の数が考慮されていません。色は負の値を正しく反映しているように見えますが、凡例は明るい灰色のゼロで停止します。データフレームの「エラー」列のデータの全範囲をカバーする凡例をこれから取得するにはどうすればよいですか?

4

1 に答える 1

7

これを試して:

ggplot(dat, aes(Ne, BR)) +
  geom_tile(aes(fill=Error), colour="white") + 
  scale_fill_gradient(low="white", high="black",breaks = seq(min(dat$Error),max(dat$Error),length.out = 5)) + scale_x_log('Ne') +    
  scale_y_log('Birth Rate') + opts(axis.ticks = theme_blank()) 

ggplot軸の目盛りが選択される方法と同様に、スケール内の「適切な」ブレークを選択しようとしています。dat(R で一般的に使用される関数のように、データ フレーム名を に変更dataしました。大したことではありませんが、混乱を避けることができます。)

ここに画像の説明を入力

于 2011-09-24T03:08:58.480 に答える