相关疑难解决方法(0)

指定ggplot2面板宽度

我在同一页面上有两个ggplots,我希望它们的面板宽度相同.

一些样本数据:

dfr1 <- data.frame(
  time = 1:10,
  value = runif(10)  
)

dfr2 <- data.frame(
  time = 1:10,
  value = runif(10, 1000, 1001)  
)
Run Code Online (Sandbox Code Playgroud)

一个低于另一个的情节:

p1 <- ggplot(dfr1, aes(time, value)) + geom_line()
p2 <- ggplot(dfr2, aes(time, value)) + geom_line()

grid.newpage()
pushViewport(viewport(layout = grid.layout(2, 1)))   
print(p1, vp = viewport(layout.pos.row = 1, layout.pos.col = 1))         
print(p2, vp = viewport(layout.pos.row = 2, layout.pos.col = 1))
Run Code Online (Sandbox Code Playgroud)

如何指定每个图中的面板宽度和位置,以使它们对齐?

(我不想将图表与刻面结合起来;这在我的实际例子中是不合适的.)

r ggplot2 r-grid

12
推荐指数
1
解决办法
6235
查看次数

如何在ggplot2中设置y轴标签的宽度

我在ggplot2中制作了直方图集合,并使用ImageMagick将它们设置为gif动画. 在ggplot2中制作的图形动画GIF 我们的想法是假设x轴刻度在所有图形中都是相同的,但这并不完全正确,因为y轴由于标签的宽度变化而摇摆不定.如何锚定图形以使所有图形具有完全相同的轴位置?

这是我的ggplot代码,如果它有帮助:

hist.fn<-function(tier,ddf){
    df<-ddf[ddf$tier==tier,]
    l<-match(tier,levels(df$tier))
    hist.png<-ggplot(df,aes(df$"Premium Adult Individual Age 40" ))+
    geom_histogram()+   
    labs(title=paste0(tier," premiums in federal exchanges"),
            x ="Premium", y = "Frequency")+
    coord_cartesian(xlim=c(0, 1500))+
        theme_bw()+
        theme(text = element_text(size=14), plot.title = element_text(face="bold"),axis.title.x =element_text(face="bold"),axis.title.y =element_text(face="bold"))
    file=paste0(l,"hist.jpg")

    ggsave(filename=file, plot=hist.png, width=13, height=8, dpi=50)
    return(hist.png)
}
data.df$tier%>% levels %>% lapply(FUN=hist.fn,ddf=data.df) ->histograms.of.tiers    

system("magick -delay 75 *hist.jpg hist.gif")
Run Code Online (Sandbox Code Playgroud)

r animated-gif ggplot2

7
推荐指数
1
解决办法
1429
查看次数

标签 统计

ggplot2 ×2

r ×2

animated-gif ×1

r-grid ×1