我正在使用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)
它看起来很好看。
但是,如果我尝试将“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.
所有大于3000的“计数”值(或新尺度上的3)都向下指向,即使它们大于零。由于某种原因,酒吧被固定在3而不是0.有谁知道为什么会发生这种情况以及我能做些什么来解决它?
答案 0 :(得分:1)
我只是调查了这个。看起来问题已在新版本的软件包中得到修复。当我使用devtools pacakge中的以下命令安装plotrix时,我能够生成正确的绘图。
install_github("cran/plotrix")
似乎在代码更新之前使用以下代码设置了底部水平切割:
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上的新版本进行比较。