如何消除基准R中带状图中的多余空间?

时间:2018-09-13 15:31:46

标签: r plot data-visualization stripchart

我已使用以下代码在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

该图在图的顶部包含大量额外空间或空白,如下所示。

Stripchart of oldFaithful data

有没有一种方法可以消除顶部的多余空间?

1 个答案:

答案 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一样。