比方说,我有类似以下示例的数据,
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个标度,即使它具有零。
如何修改我的代码或进行这种绘图?
答案 0 :(得分:0)
您需要在不降低等级的情况下进行子集化。
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))