从R ggplot geom_bar轴中删除前导零的选项/代码是什么?
即,我希望0.05以0.05显示。
所有我能找到的都是内置格式,如百分比,逗号等。
THX!
答案 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)