小编Dal*_*nce的帖子

使用ggplot2和网格对齐离散轴和连续轴

我试图显示几个变量的汇总每周数据的网格图.此图中最相关的两个组成部分是某个变量在给定周内所占的值的分布式汇总图(所以框图或小提琴图)以及累积在几周内的整数变量的累积计数图(所以a步骤图).我想将这两个图形绘制在一个对齐的x轴上grid.我将用它ggplot2来制作单独的图形,因为我迷上了Hadley Wickham(j/k,ggplot真的非常非常好).

问题是geom_boxplot只需要x轴的因子而且只需要x轴的geom_step连续数据.即使您使用coord_cartesian或强制使用类似的x限制,这些也不一定对齐scale_x_....

我已经拼凑了一个hack使用geom_rect它将适用于这个特定的应用程序,但如果,例如,我有一些其他因素导致一个星期多个框,这将是一个痛苦的适应.

强制性可重复性:

library(ggplot2)
library(grid)

var1 <- data.frame(val = rnorm(300),
                   week = c(rep(25, 100), 
                        rep(26, 100), 
                        rep(27, 100))
                  )

var2 <- data.frame(cumul = cumsum(c(0, rpois(2, 15))),
                   week = c(25, 26, 27)
                  )


g1   <- ggplot(var1, aes(x = factor(week), y = val)) + 
  geom_boxplot()

g2   <- ggplot(var2, aes(x = week, y = cumul)) + 
  geom_step() + scale_x_continuous(breaks = 25:27)

grid.newpage()
grid.draw(rbind(ggplotGrob(g1),
                ggplotGrob(g2),
                size = "last")) …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2 r-grid

5
推荐指数
1
解决办法
667
查看次数

标签 统计

ggplot2 ×1

plot ×1

r ×1

r-grid ×1