2013-02-19 38 views
12

下のグラフ(y軸)を見ると、縮尺は0から0.20までです。範囲が0から0.4までの他のヒストグラムがあります。私はそれらのすべてを0から1まで一貫させ、0から1までのy軸を表示したいと思います。Rの最小値と最大値の範囲をy軸に強制する方法は?

conne <- file("C:Aisdefined.bin","rb") 
sd <- readBin(conne, numeric(), size=4, n=1440*720, signed=TRUE) 
y  <- t(matrix((data=sd), ncol=1440, nrow=720)) 
r  <- raster(y) 
f  <- hist(y, breaks=10,main="sm") 

f$counts <- f$counts/sum(f$counts) 
dat <- data.frame(counts= f$counts,breaks = f$mids) 
ggplot(dat, aes(x = breaks, y = counts, fill =counts)) + 
    geom_bar(stat = "identity",alpha = 0.8) + 
    xlab("Pearson correlation")+ ylab("Frequency") + 
    scale_x_continuous(breaks = seq(-1,1,0.250), labels = seq(-1,1,0.250)) + 
    ggtitle("2011") + theme(axis.title.x = element_text(size = 20)) + 
    theme(axis.title.y = element_text(size = 20)) + 
    theme(text = element_text(size=20), 
    axis.text.x = element_text(angle = 90, vjust=1,colour="black"), 
    axis.text.y = element_text(colour="black")) + 
    theme(plot.title = element_text(size = rel(2.5))) + 
    scale_fill_gradientn(colours = "black") 
+1

はなぜ 'ggplot2'は、以下の一切のデータポイントが存在しない場合、0のy軸の値を下回るスペースを含みません0? – SabreWolfy

答えて

18

だけ追加します。

+ coord_cartesian(ylim=c(0,1)) 
+0

単に' ylim() 'ではないのですか? – MERose

+0

+ coord_cartesian(ylim = c(0.005,0.02))のエラー: 単項演算子への無効な引数 –

+0

@MonaJalal ggplotオブジェクトに追加する必要があります。これは、OPsオリジナルプロット仕様に追加されたものです。 – James

9

これを試してみてください:

scale_y_continuous(limits = c(0,1), expand = c(0,0)) 
+2

注意:スケールの制限を設定するとデータが除外されることがあります。 – James

+0

@James確かに - 私はOPがy軸だけを望んでいないことを忘れていました。私の間違い。この場合、 'scale_y_continuous'を使用するのは有効です。なぜならヒストグラムは値が0と1の間にあるように制限されるからです。 –

関連する問題