2010-08-06 70 views
32

通常,當我繪製一些R線圖並設置ylim=c(0,some_value)時,x軸和y = 0之間存在小空間。將R座標系x軸顯示在y = 0處

我希望y軸在y = 0處精確顯示,因此points(x,0)將繪製在y軸上(而不是上面)。

回答

39

你可能想圖形參數xaxsyaxs風格的 「i」:

plot(1:10, rnorm(10), ylim=c(0,10), yaxs="i") 

?par

xaxs:用於軸間隔的風格 計算x軸。 可能的值是「r」,「i」,「e」, 「s」,「d」。樣式一般是 由數據範圍或 xlim控制,如果給出。式「R」(規則的) 第一個延伸通過在每個端部4 %的所述數據範圍,然後找到一個 軸用適合 擴展範圍內漂亮標籤。風格「我」 (內部)只是找到一個與 漂亮的標籤,適合 原始數據範圍。樣式「s」 (標準)找到一個包含漂亮 標籤的軸,其中原始數據 範圍適合。式「E」(擴展)是 般的風格的「s」,但它也 確保有空間的邊界 框內 繪圖符號。樣式「d」(直接)指定 當前軸應在後續圖上使用 。 (僅當前實現「r」和「i」 樣式)

yaxs:用於y軸的軸間隔計算的樣式。 請參閱xaxs以上。

+0

+1賓果!謝謝。 – 2010-08-06 09:02:28

+0

請注意,引用:「R中只實現了」r「和」i「樣式。」我想這意味着「e」,「s」和「d」僅在S中可用(還有什麼意思呢?)不管怎樣,不幸的是,這些其他的在R中不可用。 – PatrickT 2013-03-18 06:56:34

9

另一種選擇是使用axes=F禁用在圖中的軸繪圖,然後把軸在分別使用軸命令,與pos選項控制軸間距。

plot(1:10, runif(10), ylim=c(0,1), xlim=c(0,10),axes=F) 
    axis(1, pos=0) 
    axis(2, pos=0)