尝试在ggplot2中自定义y轴时,条形上方没有空格

时间:2016-03-03 09:30:56

标签: r ggplot2

我试图在ggplot中自定义y轴,但无法找到如何在条形图上方留出空间。 这是一个有效的例子:

df <- data.frame(Place=rep(c('A','B','C','D'),each=2),
     Year=rep(c('14','15'),4), 
     Count=c(69400, 114443,  75922, 137006,  23062,  14504,  97440, 294008))
library('ggplot2')
ggplot(df,aes(x=Year,y=Count))+
       facet_wrap(~Place)+theme_bw()+
       geom_bar(stat = "identity",color="black")+
       scale_y_discrete(limits=c(0,100000,200000,300000), 
                        breaks=seq(0,300000,100000), 
                        labels=c("0", "100", "200","300"))

enter image description here

任何解决方案?

1 个答案:

答案 0 :(得分:1)

ggplot2会自动确定连续y轴的最佳限制。 对于标签,如果您想要另一个单元(在您的情况下,计数除以1000),更简单的方法是转换数据。但是,使用scales包可以轻松进行比例转换和格式化。

df <- data.frame(Place=rep(c('A','B','C','D'),each=2),
                 Year=rep(c('14','15'),4), 
                 Count=c(69400, 114443,  75922, 137006,  23062,  14504,  97440, 294008))
library('ggplot2')
ggplot(df,aes(x=Year,y = Count / 1000))+
  facet_wrap(~Place)+theme_bw()+
  geom_bar(stat = "identity",color="black")

exemple_1

如果您的数据具有更高的估值值(> 300 000),则会进行调整。我添加了一年16,例如:

df <- data.frame(Place=c(rep(c('A','B','C','D'),each=2), c('A','B','C','D')) ,
                 Year=c(rep(c('14','15'),4),rep("16", 4)),
                 Count=c(69400, 114443,  75922, 137006,  23062,  14504,  97440, 294008, 15000, 256000, 450000, 125000))
library('ggplot2')
ggplot(df,aes(x=Year,y = Count / 1000))+
  facet_wrap(~Place)+theme_bw()+
  geom_bar(stat = "identity",color="black")

exemple_2