我有動態地構建線圖的功能,因此,需要解決我用公式問題,而不是手動設置範圍。 (注意專家:我已經爲自己&其他人寫了這個邏輯進程 - 道歉,這意味着更多的文字;我覺得R的幫助是特別分散和無助於繪圖,所以希望這可以幫助其他人)。R:設置的軸蜱&範圍包括所有點瓦特/漂亮打破
我生成的線圖的座標軸有正確的刻度間距數(默認,假設是'漂亮中斷'?),但軸範圍不包含整個數據範圍 - 有些是外。 (你可以忽略地毯情節十分位數軸線上方,但第一&最後的顯示數據範圍)
那麼想我是x軸的寬度,以涵蓋所有數據,但保留美麗的休息時間,即將最小/最大滴答點分散到很好的值,或超過極端值......理想情況下,沒有太多工作!我的意思並不是懶惰,但它感覺像是一種常見的願望。我在讀有關at
,包括pretty
和,也xaxt
和xaxs
和xpd
。
plot
xaxs
控制實際數據線在圖中所佔的寬度,「i」將其擴展到邊距,「r」(或默認)將其稍微擠壓一點。這是很酷的知道,但可以說不是人們所期望的'軸'。 (這裏設置爲「r」/默認)
xaxt
的幫助讓我們知道它是用來關閉軸繪圖的功能,但沒有說明它做了什麼/它們是什麼類型的。
在axis
,at
控制軸線長度,默認爲,默認爲xaxp
。在它面前,xaxp
是我想要的,允許一個指定c(x1, x2, n)
,但是默認x1
& x2
是數據範圍之內,而不是圍繞它。
axis
求助說:
「的軸線從最低的at
最高值繪製的,但在情節區域被夾在默認情況下,只蜱這是從點積內繪製。區域(最多爲舍入誤差容限)繪製,但蜱及其標籤可積區外以及延長。使用xpd = TRUE
或xpd = NA
允許軸,以進一步擴展」
無論xpd = TRUE
也不xpd = NA
似乎改變什麼。 XPD求助說:
「如果FALSE,所有繪製剪裁到情節區域,如果是真的,所有的繪製剪裁到人物區域,如果不適用,所有的繪製剪裁到設備區」
即axis
幫助說xpd
控制軸擴展,xpd
幫說xpd
控制繪圖裁減。
xaxp
幫助表示
「的純的R執行本見axTicks()
」「計算漂亮的對勾標記的位置,以同樣的方式爲R確實在內部」,並默認爲相關方的at
值,即par("xaxp")
。
pretty
似乎scarily複雜,並且很可能是什麼R
在內部使用時,應用到at
計算默認的刻度標記的間隔;能夠編輯這個參數並沒有其他任何東西,也就是說,根據繪圖區域大小指定期望的間隔數量,但是我很樂意留下這個意思,如果這意味着花費一天的時間反編譯,理解,然後手動重新編譯pretty
!我也不知道n
是否與n
在xaxp
中有相同的作用,如果是這樣的話,它會優先考慮。
所以,R的幫助似乎用「軸」是指兩軸(xaxt
,axis
)和繪圖(xaxs
,xpd
),沒有跡象顯示該參數是否受到par
,plot
,axis
控制,或可以控制通過它們中的任何一個的組合(像往常一樣)。在試圖找到負責的元素,axis
說at
其中說其中說xaxp
其中說它說at
(=循環)。
作爲一個次要的,更廣泛的元問題:我是否在嘗試找出繪製問題的答案方面做了些錯誤?我閱讀和閱讀的幫助是經常缺乏,混淆,矛盾,並通常導致直覺黑洞是否應該控制par
,plot
或axis
。先謝謝你們。對不起,這很長,我真的認爲這將是一個超級簡單的選擇。
最小的可重複的例子:
png(filename="A.png", width=4*480, height=4*480, units="px", pointsize=80, bg="white", res=NA, family="", type="cairo-png")
par(mar=c(1.32,2,0.4,0.5), fig=c(0,1,0,1), las=1, lwd=8, bty="n", mgp=c(2,0.5,0), xpd=NA)
plot(ChickWeight[,1:2],type="l",xaxs="i",yaxs="i")
dev.off()
我沒有花時間閱讀所有內容,但'scales :: extended_breaks()'應該在這裏幫助。 – baptiste 2014-09-22 10:56:09
謝謝。我不假設你知道是否有任何關於何處以及如何使用的信息?即par/plot/axis?我嘗試在plot中添加「extended_breaks(n = 7)」,但是得到:「title(...)中的錯誤:不能強制類型'closure'輸入'character'類型的vector。謝謝。 – 2014-09-22 12:26:18
如果你發佈了一個最小可重現的例子,有人可能會告訴你 – baptiste 2014-09-22 13:33:00