簡體   English   中英

ggplot2,帶有多面的geom_bar的y限制

[英]ggplot2, y limits on geom_bar with faceting

在下面,通過選擇free_y ,每個刻度的最大值將按預期進行調整,但是,如何獲得也要調整的最小值? 此刻,它們都從0開始,而我確實希望上端從99左右開始到100,而下端從900左右開始到1000。

library(ggplot2)
n = 100
df = rbind(data.frame(x = 1:n,y = runif(n,min=99,max=100),variable="First"),
           data.frame(x = 1:n,y = runif(n,min=900,max=1000),variable="Second"))
ggplot(data=df,aes(x,y,fill=variable)) + 
  geom_bar(stat='identity') +
  facet_grid(variable~.,scales='free')

結果

您可以使用geom_linerange而不是geom_bar 做到這一點的一般方法是,先找到miny對的每個值variable然后合並與原始數據的最小值。 代碼如下所示:

library(ggplot2)
min_y <- aggregate(y ~ variable, data=df,  min)
sp <- ggplot(data=merge(df, min_y, by="variable", suffixes = c("","min")),
             aes(x, colour=variable)) + 
  geom_linerange(aes(ymin=ymin, ymax=y), size=1.3) +
  facet_grid(variable ~ .,scales='free')
plot(sp)

情節看起來像:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM