2013-10-06 108 views
0

替代標題:如何將直方圖的y軸縮放到範圍0-1?直方圖y軸縮放爲1內部散點圖,y軸較大

可怕的問題標題,所以要演示的例子。這裏的數據被設置爲使得範圍幾乎等於我在y軸上的數據範圍...大約0到3.5。

library(ggplot2) 
x<-runif(100)*200 
y<-runif(100)*3 
xy<-data.frame(x,y) 

p <- ggplot(xy) + theme_bw() 
p + geom_point(aes(x, y)) + 
    geom_histogram(aes(x), alpha=1/10) 

我想直方圖 'Y-範圍' 縮放到的1 The first part of this answer一個最大給出了一個例子,他說:


你接近,但需要使用(..density ..)* binwidth而不是 ..count ../總和(..算..)

# Your data: 
all <- data.frame(fill=rep(LETTERS[1:4],c(26,24,23,29)), 
        Events=c(1,1,3,1,1,6,2,1,1,2,1,1,1,1,5,1,2,2,1,1,1,1,2,1,2,1,2,3,1,3,2,5,1,1,1,2,1,1,1,1,1,1,1,1,1,4,3,3,5,3,1,2,2,3,3,9,8,1,1,2,2,1,2,39,43,194,129,186,1,2,7,4,1,12,3,2,3,8,20,5,1,4,9,51,12,7,6,7,7,9,17,18,8,7,6,10,27,11,21,89,47,1)) 

bw <- 20 # set the binwidth 
# plot 
p1<-ggplot(all,aes(x=Events, fill=fill)) + 
    geom_histogram(aes(y=(..density..)*bw), position='dodge', binwidth=bw) 
p1 

,但它不工作對我來說,有一個錯誤而失敗有關無人有變量「體重」:

bw <- 30 
p <- ggplot(xy) + theme_bw() 
p + geom_point(aes(x, y)) + 
    geom_histogram(aes(x=x, y=..density.. * bw), alpha=1/10) 

Error in eval(expr, envir, enclos) : object 'bw' not found 

回答