我正在绘制一个简单的ggplot散点图,其中一个变量相对于另一个变量,刻入第三个变量,并根据第四个变量着色。
对我来说,根据第四个变量(而不是刻面)进行着色很重要,这样我才能显示清晰的重叠。
但是,这引起了一个问题,因为我不知道如何指定颜色变量的绘制顺序。
因此,举例来说,如果我可以用来为数据着色的变量(“ colvar”)具有四个值(“ A”,“ B”,“ C”,“ D”),我想指定首先绘制“ D”,然后在顶部绘制“ B”,然后在“ A”上绘制,然后最后在最顶部绘制“ C”,因为当前“ C”隐藏在其他绘制下面。
我曾尝试简单地拆分数据帧并使用不同的geom_point()绘制每个图像,但是随后出现一个问题,即使用facet_wrap()将它们刻面并不容易。
# Reproducible Example
A <- data.frame(1:10, 1:10, "Norman")
B <- data.frame(1:5, 1:5, "Bradley")
C <- data.frame(1:20, 1:20, "Jason")
names(B) <- names(A)
names(C) <- names(A)
df <- rbind(A,B,C)
names(df) <- c("X","Y","Z")
ggplot(df) +
aes(X,Y) +
geom_point(aes(colour = Z))
# In this case "Jason" is plotted on top and blocks out Norman and Bradley.
# Is there a way to plot Jason, then Norman, then Bradley (without using
# rbind in a different order?