R 如何用可变颜色重新排列ggplot散点图的打印顺序

R 如何用可变颜色重新排列ggplot散点图的打印顺序,r,ggplot2,R,Ggplot2,我正在绘制一个简单的ggplot散点图,其中一个变量与另一个变量相对,分面成第三个变量,并根据第四个变量着色 对我来说,根据第四个变量(而不是面)进行着色是很重要的,这样我可以显示清晰的重叠 然而,这导致了一个问题,因为我无法确定如何指定颜色变量的打印顺序 因此,举例来说,如果我可以为数据着色的变量(“colvar”)有四个值(“A”、“B”、“C”、“D”),我想指定“D”首先绘制,然后在顶部绘制“B”,然后在顶部绘制“A”,最后在最顶部绘制“C”,因为当前“C”隐藏在其他值之下 我尝试过简单

我正在绘制一个简单的ggplot散点图,其中一个变量与另一个变量相对,分面成第三个变量,并根据第四个变量着色

对我来说,根据第四个变量(而不是面)进行着色是很重要的,这样我可以显示清晰的重叠

然而,这导致了一个问题,因为我无法确定如何指定颜色变量的打印顺序

因此,举例来说,如果我可以为数据着色的变量(“colvar”)有四个值(“A”、“B”、“C”、“D”),我想指定“D”首先绘制,然后在顶部绘制“B”,然后在顶部绘制“A”,最后在最顶部绘制“C”,因为当前“C”隐藏在其他值之下

我尝试过简单地分割数据帧,并用不同的geom_point()绘制每个数据帧,但是我发现用facet_wrap()刻面它们并不容易

#可复制示例

A也许你在寻找
几何抖动

require(tidyverse)

df %>%
  ggplot(aes(X, Y, color = Z)) + 
  geom_point() +
  geom_jitter()

在绘制df之前,您是否可以尝试以下操作?如果您包含一个简单的示例输入和所需的输出,可用于测试和验证可能的解决方案,则会更容易为您提供帮助。另外,确保不要将
$
放在
aes()
语句中;它应该是
aes(varA,varB)
作为一般的经验法则,我现在提供了一个简单的可复制的示例。这似乎让我可以更改颜色(例如,0/red 1/绿色或0/green 1红色),但当我尝试更改时,它们的相对绘制顺序(哪一个是“顶部”)
require(tidyverse)

df %>%
  ggplot(aes(X, Y, color = Z)) + 
  geom_point() +
  geom_jitter()