使用gap.barplot未固定为零的柱

时间:2016-12-29 21:19:59

标签: r plotrix

我正在使用plotrix的gap.barplot()函数,当一些值非常小时我遇到了问题。从以下数据框开始:

test.df <- data.frame(
perc = c(2.5,7.5,12.5,17.5,22.5,27.5,32.5,37.5,42.5,47.5,52.5,57.5,62.5,67.5,72.5,77.5,82.5,87.5,92.5,97.5), 
count = c(143649,30872,17444,11333,7513,5257,3677,2795,1976,1530,1022,916,862,985,808,339,59,2,1,1)
)

如果我创建一个有缺口的条形图如下:

library(plotrix)
gap.barplot(test.df$count, gap=c(38000,136000), xaxlab=test.df$perc, xtics=test.df$perc, ytics=c(0:30)*5000, col="white", las=1)
它看起来很好看。

enter image description here

但是,如果我尝试将“count”值除以1000,请使用以下代码:

gap.barplot(test.df$count/1000, gap=c(38,136), xaxlab=test.df$perc, xtics=test.df$perc, ytics=c(0:30)*5, col="white", las=1)

条形没有锚定在0.

enter image description here

所有大于3000的“计数”值(或新尺度上的3)都向下指向,即使它们大于零。由于某种原因,酒吧被固定在3而不是0.有谁知道为什么会发生这种情况以及我能做些什么来解决它?

1 个答案:

答案 0 :(得分:1)

我只是调查了这个。看起来问题已在新版本的软件包中得到修复。当我使用devtools pacakge中的以下命令安装plotrix时,我能够生成正确的绘图。

install_github("cran/plotrix")

enter image description here

似乎在代码更新之前使用以下代码设置了底部水平切割:

botgap <- ifelse(gap[1] < 0, gap[1], xlim[1])

最近更新为以下内容:

botgap<-ylim[1]

在你的例子中,我看到包计算botgap = 2.5(所以低于2.5的所有值都出现了负条)但你想要它为0.我没有看到一种方法来覆盖botgap的值该软件包的早期版本,如果可能的话,您可能想要获取更新的版本。另一种选择是使用正确的代码创建一个新函数。

如果你想自己检查,你可以在R控制台中使用plotrix :: gap.barplot查看你下载的功能,并将代码与github here上的新版本进行比较。