2017-05-25 74 views
1

我想弄清楚scale_continuous()expand參數是如何工作的。根據​​:ggplot scale_continuous如何擴展參數工作?

長度爲2的數值向量給乘法和加法 膨脹常數。這些常量可以確保將數據放置在距離軸一定距離的地方。 連續變量的默認值爲c(0.05,0),離散變量的默認值爲c(0,0.6)。

由於它們是「擴展常量」,它們不是實際單位。有什麼方法可以將它們轉換爲實際測量值來預測實際輸出嗎?除了0以外的任何東西,我只是嘗試隨機數字,直到它工作。必須有更合適的方法來解決這個問題。

+0

不確定什麼是「實際單位」:像素,毫米*等*?這不是'擴展'運作的方式;它只是試圖根據您的數據範圍提供一點填充。 – neilfws

回答

5

該文件非常清晰。如果您手動設置limits,則會更清楚。我將舉幾個例子來說明它是如何工作的:

第一個參數給出的擴展等於其乘以限制範圍;

ggplot(mpg, aes(displ, hwy)) + 
    geom_point() + 
    scale_x_continuous(limits = c(1, 7), expand = c(0.5, 0)) 
# right most position will be 7 + (7-1) * 0.5 = 10 

第二給出了絕對膨脹添加到軸上的兩個端:

ggplot(mpg, aes(displ, hwy)) + 
    geom_point() + 
    scale_x_continuous(limits = c(1, 7), expand = c(0.5, 2)) 
# right most position will be 7 + (7-1) * 0.5 + 2 = 12 

最後,相同的擴張適用於軸線的兩端。

+0

這更清晰。有沒有辦法只將它應用於右側或左側,還是更復雜? – burger

+2

@burger,據我所知,沒有這樣的選擇。但是,如果需要,您可以手動設置「limits」並可選擇將「expand」設置爲「c(0,0)」。 – mt1022

+0

感謝您的意見。我沒有固定的「極限」,所以我希望能夠動態地做到這一點。很高興知道這不是微不足道的。 – burger