我试图在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"))
任何解决方案?
答案 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")
如果您的数据具有更高的估值值(> 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")