2012-02-10 137 views
19

我有一個時間序列的數據,其中的測量值都是1e6和1e8之間的整數:每月網站點擊率。我想用ggplot2來繪製這些點和線,但將測量映射到一個對數刻度。就像這樣:使用對數刻度時,如何在ggplot2中設置軸範圍?

qplot(month, hits, data=hits.per.month, log="y") 

當我這樣做時,ggplot似乎設置從1e6到1e8的比例。我希望它從0擴展到1e8。這樣做的自然的方式似乎對輸出沒有影響:

qplot(month, hits, data=hits.per.month, log="y", ylim=c(0, 100000000)) 

我能得到我想要達到qplot之前,把命中的圖片,但改變軸上的標籤:

qplot(month, log10(hits), data=hits.per.month, log="y", ylim=c(0, 8)) 

我也試過各種組合scale_y_log10,但沒有運氣。

那麼,如何在ggplot2中使用對數刻度時設置Y軸範圍?

回答

25

很多ggplot2如果不使用qplot就更簡單了。這樣,你是不是填鴨式的一切到一個單一的函數調用:

df <- data.frame(x = 1:10, 
       y = seq(1e6,1e8,length.out = 10)) 

ggplot(data = df,aes(x = x, y =y)) + 
    geom_point() + 
    scale_y_log10(limits = c(1,1e8)) 

enter image description here

我會假設你真的不意味着唉最小值爲0軸,因爲對數標度是這個,是有問題的。

+5

+1同意,從來沒有完全得到qplot的掛鉤() – 2012-02-10 17:40:49

+0

謝謝。這對我行得通。雖然我希望我能理解_why_的工作方式,而'qplot'版本則沒有。 – jml 2012-02-13 11:03:42

+7

你是如何得到y軸上的數值來表達這樣的上標? – 2014-06-15 15:51:42

相關問題