2

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

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

oldFaithful 数据的条形图

有没有办法消除顶部的额外空间?

4

1 回答 1

1

简答

添加参数offset=1,如

stripchart(oldFaithful, offset=1, ...)

长答案

您真的必须深入研究代码stripchart才能弄清楚这一点!

当您ylim通过调用设置 astripchart(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.

于 2018-09-13T16:18:24.627 回答