2016-03-03 46 views
0

我试图定制ggplot中的y轴,但无法找到如何在空格上方做空格。 这里有一个工作示例:当试图在ggplot2中定制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

任何解决方案?

+0

不知道你是什么意思与“上述酒吧空间”。可能这是您要查找的内容:'limits = c(0,100000,200000,350000)'和'labels = c(“0”,“100”,“200”,“350”)'。 –

+0

右下角的酒吧上面没有空间,所以它看起来像突出到上面的酒吧。 – Valtyr

+1

为什么你创建一个离散的规模?你的数据是连续的,你应该使用连续的规模。你只想要一个空间在最高的酒吧上方,酒吧下面没有空间? – Roland

回答

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

+0

这会在最高的酒吧上方创建一个空间。谢谢。 但是,如果最高的酒吧提高了一点点300000标签不会改变。我也想要标签高于酒吧。 – Valtyr

+0

如果您没有手动修复任何内容,它会根据您的数据进行调整。在我的编辑中查看我的新示例 – cderv