我使用下面的代码在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
该图包含图表顶部的大量额外空间或空格,如下所示。
有没有办法消除顶部的额外空间?
简答
添加参数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
。