R - ggplot轴号格式 - 删除前导零

时间:2014-08-04 22:22:54

标签: r ggplot2

从R ggplot geom_bar轴中删除前导零的选项/代码是什么?

即,我希望0.05以0.05显示。

所有我能找到的都是内置格式,如百分比,逗号等。

THX!

2 个答案:

答案 0 :(得分:1)

你可以编写一个函数,你可以调用你的情节的labels位:

#create reprex
data(iris)
library(ggplot2)

#write the function
dropLeadingZero <- function(l){
  lnew <- c()
  for(i in l){
    if(i==0){ #zeros stay zero
      lnew <- c(lnew,"0")
    } else if (i>1){ #above one stays the same
      lnew <- c(lnew, as.character(i))
    } else
      lnew <- c(lnew, gsub("(?<![0-9])0+", "", i, perl = TRUE))
  }
  as.character(lnew)
}

然后,您可以在ggplot来电中拨打此电话。例如:

ggplot(data=iris, aes(x=Petal.Width, y = Sepal.Length))+
  geom_bar(stat = "identity")+
  scale_x_continuous(breaks = seq(0,2.5, by = 0.5), 
                     labels = dropLeadingZero)

答案 1 :(得分:0)

作为受m.evans给出的答案启发的一种简单替代方法,使用stirngr包可以很容易地实现删除前导零。

dropLeadingZero <- function(l){
  str_replace(l, '0(?=.)', '')
}

ggplot(data=iris, aes(x=Petal.Width, y = Sepal.Length))+
  geom_bar(stat = "identity")+
  scale_x_continuous(breaks = seq(0,2.5, by = 0.5), 
                     labels = dropLeadingZero)