想要繪製一個疊加柱狀圖:ggplot的scale_y_log10行爲
set.seed(1)
my.df <- data.frame(param = runif(10000,0,1),
x = runif(10000,0.5,1))
my.df$param.range <- cut(my.df$param, breaks = 5)
require(ggplot2)
不記錄y軸:
ggplot(my.df,aes_string(x = "x", fill = "param.range")) +
geom_histogram(binwidth = 0.1, pad = TRUE) +
scale_fill_grey()
但我想日誌10 + 1轉換y軸以使其更易於閱讀:
ggplot(my.df, aes_string(x = "x", y = "..count..+1", fill = "param.range")) +
geom_histogram(binwidth = 0.1, pad = TRUE) +
scale_fill_grey() +
scale_y_log10()
這給:
在y軸上的刻度線沒有意義。
我得到同樣的行爲,如果我日誌10變換,而不是日誌10 + 1:
ggplot(my.df, aes_string(x = "x", fill = "param.range")) +
geom_histogram(binwidth = 0.1, pad = TRUE) +
scale_fill_grey() +
scale_y_log10()
任何想法是怎麼回事?
1.爲什麼不刻度線是有意義的嗎? 2.在最後一行代碼中我看不到任何轉換。 –
抱歉,最後一行代碼已更正。關於y軸刻度值,我認爲它應該顯示第一個圖中顯示的計數的log10,所以它們應該是:2.69,3,3.17,3.30而不是1,000。 10,000,000,100,000,000,000 – dan
y軸仍將以實際計數爲單位,而不是這些計數的日誌,但是y尺度會進行轉換,以便每個因子10的物理距離相同。 – eipi10