我已使用以下代码在R中创建了一个挂图:
oldFaithful <- read.table("http://www.isi-stats.com/isi/data/prelim/OldFaithful1.txt", header = TRUE)
par(bty = "n") #Turns off plot border
stripchart(oldFaithful, #Name of the data frame we want to graph
method = "stack", #Stack the dots (no overlap)
pch = 20, #Use dots instead of squares (plot character)
at = 0, #Aligns dots along axis
xlim = c(40,100)) #Extends axis to include all data
该图在图的顶部包含大量额外空间或空白,如下所示。
有没有一种方法可以消除顶部的多余空间?
答案 0 :(得分:1)
简短回答
添加自变量offset=1
,如
stripchart(oldFaithful, offset=1, ...)
长期回答
您真的必须深入研究stripchart
的代码才能弄清楚这一点!
当您通过调用ylim
设置stripchart(oldFaithful, ylim=c(p,q))
或让stripchart
使用其默认值时,实际上会在创建空白绘图区域时设置ylim
。
但是,它随后必须在该空白绘图区域上绘制点。当这样做时,将一个x值处的点的y值指定为(1:n) * offset * csize
。这里是要注意的问题,csize
是基于ylim[2]
的,因此,使较高的ylim越小,则csize
的值就越小,无论值如何,实际上都将空格留在图表的顶部的ylim[2]
。
请注意,您可以“与” ylim[1]
“打扰”。试试这个:
stripchart(oldFaithful, ylim=c(2,10), pch=20, method="stack")
好,回到解决您的问题。第二个原因是图的顶部有空间,第二个原因是offset
。默认情况下,offset=1/3
(像csize
)是“缩小”正在绘制的点的y值的高度。您可以通过将offset
设置为更接近或等于1来取消此行为,就像offset=0.9
一样。