Как создать разные оси X с сохранением всех значений на каждой панели?

Скажем, у меня есть данные, подобные следующему примеру,

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"))

Я хочу добавить обрезку как

dat1 = dat1[dat1$value > 2, ]

Мой код

library(ggplot2)
pl <- ggplot(dat1, aes(y = pp, x = subgroup)) + 
        geom_point(aes(size=value)) +  
        facet_grid(cols = vars(group), scales="free", space="free")+ 
        ylab("names") +xlab(" ")
pl 

введите описание изображения здесь

Я хочу видеть все столбцы каждой панели. Например, на первой панели должно быть пять подгрупп, я вижу только три столбца на рисунке, но я просто хочу видеть все пять столбцов, даже если они ниже отсеченного или нулевого значения. На второй панели 7 шкал. После обрезки есть 6 столбцов, но я хочу видеть все 7 масштабов, даже если на нем ноль.

Как я могу изменить свой код или сделать такой сюжет?


person Indigofera suffruticosa    schedule 30.10.2018    source источник
comment
Да, пробовал. Это не работает.   -  person Indigofera suffruticosa    schedule 30.10.2018
comment
А как насчет: facet_grid (cols = vars (group), scale = free_y, space = free)   -  person Henry Cyranka    schedule 30.10.2018
comment
Неа. Я уже использовал масштабы и пространство.   -  person Indigofera suffruticosa    schedule 30.10.2018
comment
scales = "fixed" это то, что вам нужно. Вы не увидите те, которые исключены из вашего отрезка - вы удалили их из df, поэтому он не может их показать.   -  person bob1    schedule 31.10.2018
comment
Нет, это не работает. Когда я использовал scale = fixed, каждая панель имела шесть столбцов, потому что вторая панель имеет шесть столбцов. Но мне нужно пять столбцов на первой панели, семь столбцов на второй панели, три столбца на третьей панели, независимо от их значения.   -  person Indigofera suffruticosa    schedule 31.10.2018
comment
Итак, вы говорите, что нет возможности создать сюжет, который я хотел   -  person Indigofera suffruticosa    schedule 31.10.2018


Ответы (1)


Вам нужно подмножество, не понижая уровень.

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"))

dat1[dat1$value <= 2, 3] <- NA

pl <- ggplot(dat1, aes(y = pp, x = subgroup)) + 
 geom_point(aes(size=value)) +  
 facet_grid(~group, scales="free_x", space = "free")+ 
 ylab("names") +xlab(" ") +
 scale_size(range = c(3,8))

person Anonymous coward    schedule 30.10.2018