我想独立指定两个方面的断点和颜色。有没有办法做到这一点?
使用此代码
ggplot(data, aes(x = x, y = y)) +
geom_point() +
scale_y_continuous(breaks = c(0:3, 4, 6, 8)) +
facet_wrap(~group, scales = "free")
我可以在底部方面添加我需要的额外休息,但我不希望这些在顶部。换句话说,我希望底部情节为0, 1, 2, 3
,顶部情节为0, 2, 4, 6, 8
。
我不知道如何为刻面之间的标签指定不同的颜色(让我知道是否应该打开一个关于颜色的单独问题)。
答案 0 :(得分:2)
这样做的一种方法是分别绘制每个组,然后将这些图组合在一起:
library(gridExtra)
p1 = ggplot(data[data$group=="Group1",], aes(x = x, y = y)) +
geom_point() +
scale_y_continuous(breaks = c(0:3, 4, 6, 8)) +
facet_wrap(~ group)
p2 = ggplot(data[data$group=="Group2",], aes(x = x, y = y)) +
geom_point() +
scale_y_continuous(breaks = c(-1:3)) +
facet_wrap(~ group)
grid.arrange(p1, p2, ncol=1)
如果您可以提出以规划方式决定y分解的规则,那么您可以使用lapply
一次性完成所有绘图。这是一个简单的例子。对于您的用例,您需要查看是否可以提出适用于所有图表的规则。
# Store all the plots in a list
pl = list()
pl = lapply(unique(data$group), function(i) {
ggplot(data[data$group==i,], aes(x,y)) +
geom_point() +
facet_wrap(~ group) +
scale_y_continuous(limits=c(min(data$y[data$group==i]), max(data$y[data$group==i])), breaks=min(data$y):max(data$y))
})
do.call(grid.arrange, c(pl, ncol=1))