2015-03-31 88 views
4

我已經看到了這個很多次,而且只注意到它也是par幫助頁面上:爲什麼在改變R中圖的邊界時加0.1?

The default is c(5, 4, 4, 2) + 0.1 

爲什麼是它默認有這個0.1另外,它也經常可以看到+ 0.1改變時par(mar)

當設置par(mar=c(0, 0, 0, 0) + 0.1)我認爲這個想法是設置一個最小邊距,但它對於不同於零的值是沒有意義的。

回答

8

我不知道,但S: An Interactive Environment for Data Analysis and Graphics(Becker和錢伯斯1984年,第一本關於S,這也是R的祖先)給出了這些默認值(搜索xrig),說(第95頁)

enter image description here

(附錄中澄清說這實際上包含了附加的0.1,但沒有給出任何額外的解釋)。我認爲這是你要做的最好的事情。 John Chambers還在;雖然他他continues to contribute to the development list ...即使你錯過了他,我不確定他會記得他(或他的合着者之一)30多年前作出的小設計決定的基本原理......

我自己猜測,無論值多少錢,都可以預期如在圖的左邊緣以外的4條線的材料(例如刻度線,刻度線標籤和雙線軸標籤),其中0.1作爲「額外邊距」,以便文本不完全碰到邊緣。

2

嗨我有和你一樣的問題,當我找到答案時,我發現你的問題。從我的理解來看,默認值爲+0.1的原因是在設置par(mar=c(0, 0, 0, 0) + 0.1)時至少保留x軸和y軸。看看下面的圖片:

The picture! Click

正如你所看到的,雖然沒有說清楚,但仍然明顯,Y軸和X在圖片的最餘量。這意味着,當我使用代碼par(mar=c(0, 0, 0, 0)進行設置時,我將得到圖的最大尺寸(如果沒有默認值+0.1,則甚至不會有X軸和Y軸)。

希望這可以幫到你

相關問題