如何消除基础R中条形图中的额外空间?

问题描述 投票:2回答:1

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

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

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

r plot data-visualization stripchart
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.