ggplot2 facet_grid如何在每个面板中保留所有值的情况下创建不同的x轴?

时间:2018-10-29 21:08:31

标签: r ggplot2 facet-grid

比方说,我有类似以下示例的数据,

dat1 <- data.frame(group = c("a", "a","a", "a", "a", "b", "b", "b","b","b","b","b","c","c","c"),
                   subgroup = c(paste0("R", rep(1:5)),paste0("R", rep(1:7)),paste0("R", rep(1:3))),
                   value = c(5,6,0,8,2,3,4,5,2,4,7,0,3,4,0),
                   pp = c("AT","BT","CT","AA","AT","TT","RT","CC","SE","DN","AA","MM","XT","QQ","HH"))

enter image description here

并且,我想添加一些截止值作为dat1 = dat1 [dat1 $ value> 2,]。我的代码

pl <-ggplot(dat1,aes(y = as.character(pp),x = as.factor(subgroup)))+   geom_point(aes(size = as.numeric(value)))+ facet_grid(cols = vars(group),scales =“ free”,space =“ free”)+   ylab(“名称”)+ xlab(“”)   pl

enter image description here

但是我想在每个面板中看到所有比例。例如,在第一个面板中,有五个值或五个比例,即使低于截止值或零,我也只想查看所有五个比例。第二个面板有7个比例尺,但切除后应该有6列,但是我想查看所有7个比例尺,即使它具有零。

如何修改我的代码或进行这种绘图?

1 个答案:

答案 0 :(得分:1)

我们可以在scales中使用spacefacet_grid参数。

ggplot(dat1, aes(subgroup, pp)) +
  geom_point(aes(size = value)) +
  facet_grid(cols = vars(group), scales = "free", space = "free")

enter image description here