2015-07-01 48 views
3

如何標註上geom_bin2d計數一個偉大的答案,可以在這裏找到:使用`scale_x_log10`時,如何準確地將`geom_text`映射到`geom_bin2d`?

Getting counts on bins in a heat map using R

然而,修改這個時候有一個對數X軸:

library(ggplot2) 

set.seed(1) 
dat <- data.frame(x = rnorm(1000), y = rnorm(1000)) 

# plot MODIFIED HERE TO BECOME log10 
p <- ggplot(dat, aes(x = x, y = y)) + geom_bin2d() + scale_x_log10() 

# Get data - this includes counts and x,y coordinates 
newdat <- ggplot_build(p)$data[[1]] 

# add in text labels 
p + geom_text(data=newdat, aes((xmin + xmax)/2, (ymin + ymax)/2, 
           label=count), col="white") 

這將產生標籤這些圖很難映射到它們各自的點上。

如何更正基於geom_text的標籤以正確映射到相應的點?

+0

廣場磚不會再方形日誌中軸線,是不是誤導你的情節? – tonytonov

回答

2

直接在x值上應用對數轉換,而不是按比例。改變你的代碼只有一行:

p <- ggplot(dat, aes(x = log10(x), y = y)) + geom_bin2d() 

,允許保持負值,併產生以下情節: enter image description here

+0

完美,謝謝。 – DaveRGP

相關問題