gap.barplot中X轴相对于1而不是0,我该如何更改?

时间:2014-05-20 19:27:03

标签: r plot

我已经改变了gap.barplot帮助文件中的示例代码。

twogrp<-c(0, 4, 5, 7, 2,3, 1, 7, 18, 22, 25, 26, 28)
gap.barplot(twogrp,gap=c(8,16),xlab="Index",ytics=c(3,6,17,20),
        ylab="Group values",main="Barplot with gap")

当我绘制上面的代码时,结果图使0值显示为负值,值1看起来像零。有没有办法改变这个,这样如果我的矢量包含零值,则不会绘制任何内容,如果值为1,那么我会看到一个凸起的条。我注意到示例文件避免使用1和0,并且样本文件产生的图表的x轴为y = 1。

1 个答案:

答案 0 :(得分:1)

gap.barplot(plotrix版本3.5-5)中显然存在拼写错误。现在,它将条形图的底部设置为最小x值,而不是最小y值。这里有一些代码可以复制该函数并更改该行(如果找到)

gap.barplot2<-gap.barplot
if (deparse(body(gap.barplot2)[[c(20,4,4)]])==
    "botgap <- ifelse(gap[1] < 0, gap[1], xlim[1])") {
    body(gap.barplot2)[[c(20,4,4)]] <- 
        quote(botgap <- ifelse(gap[1] < 0, gap[1], ylim[1]))
} else  {
    stop("line not found")
}

然后你可以运行

gap.barplot2(twogrp,gap=c(8,16),xlab="Index",ytics=c(3,6,17,20),
    ylab="Group values",main="Barplot with gap")

获取

gapped barplot from gap.barplot2

似乎没有简单的方法来设置ylim[1]=0而不设置ylim[2](最大y值)。格子绘图函数允许ylim=c(0,NA)。强制零线会很好,但让函数的其余部分找出默认的最大值。

所以你现在可以使用这个替代方案。我会联系包裹作者让他们知道这个错误。如果您愿意,可以向他们发送此问题的链接。