使用 gap.barplot 未锚定在零的条形图
Bars not anchored at zero using gap.barplot
我正在使用 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)的 "count" 值都是向下的,即使它们大于零。出于某种原因,条形图固定在 3 而不是 0。有谁知道为什么会发生这种情况以及我可以做些什么来解决它?
我刚调查过这个。看起来问题已在较新版本的软件包中得到修复。当我使用 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 [=14= 上的较新版本进行比较].
我正在使用 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)的 "count" 值都是向下的,即使它们大于零。出于某种原因,条形图固定在 3 而不是 0。有谁知道为什么会发生这种情况以及我可以做些什么来解决它?
我刚调查过这个。看起来问题已在较新版本的软件包中得到修复。当我使用 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 [=14= 上的较新版本进行比较].