2014-12-01 67 views
0

我要在縱座標刻度(y軸)上顯示最小值和最大值的情況下,我將繪製一些變量(在箱形圖中,但無關緊要) 。在最小值和最大值之間均勻分配y軸刻度

require(ggplot2) 

y_min <- min(PlantGrowth$weight) 
y_max <- max(PlantGrowth$weight) 

ggplot(PlantGrowth, aes(x=group, y=weight)) + 
    geom_boxplot() + 
    ylim(y_min, y_max) 

結果: No minimum and maximum display

我知道,ylim()不進行直接編輯y軸的標籤,但設置另一個範圍時,不小心工作:

ggplot(PlantGrowth, aes(x=group, y=weight)) + 
    geom_boxplot() + 
    ylim(0, 8) 

直截了當的解決方案可能是自己定義滴答:

ggplot(PlantGrowth, aes(x=group, y=weight)) + 
    geom_boxplot() + 
    scale_y_continuous(breaks=c(seq(y_min, y_max, 1.25), y_max)) 

這幾乎總是導致y軸的最後一個和最後一個tick的變化距離。它需要試驗seq()的副參數,直到我們有一個均勻勾選的包含最小值和最大值的y軸。有沒有一種優雅的方式?不一定是ggplot2()解決方案,但可以在seq()上運行?

回答

4

您似乎在尋找length.out參數seq而不是by參數。也就是說,

scale_y_continuous(breaks = seq(y_min, y_max, length.out = 6)) 

您可能想包裝序列中round(),以避免不必要的精度。

相關問題