如何重新排列具有可变颜色美观度的ggplot散点图的绘图

时间:2019-05-07 12:42:23

标签: r ggplot2

我正在绘制一个简单的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?

1 个答案:

答案 0 :(得分:0)

也许您正在寻找geom_jitter

require(tidyverse)

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

enter image description here