首页 > 解决方案 > ggplot R中叠加散点图中的色点

问题描述

以这个小标题为例:

tibble(
  groups = c("a","b","c","d","e"),
  grade1 = c(510,405,308,201,99),
  grade2 = c(520,430,300,190,110),
  grade3 = c(530,410,320,210,105)
)

如何使用 geom_point 根据等级 # 为点着色?我试过这样绘制它......

ggplot(aes(x=groups)) +
    geom_point(aes(y=grade1))+
    geom_point(aes(y=grade2))+
    geom_point(aes(y=grade3))

...andcolor="red"或任何其他颜色总是会导致相同的橙色阴影。

标签: rggplot2

解决方案


最好的方法是以更长的格式重塑你的数据框(这里我使用包中的pivot_longer函数tidyr):

library(tidyr)
library(dplyr)
df %>% pivot_longer(.,- groups, names_to = "var", values_to = "val")

# A tibble: 15 x 3
   groups var      val
   <chr>  <chr>  <dbl>
 1 a      grade1   510
 2 a      grade2   520
 3 a      grade3   530
 4 b      grade1   405
 5 b      grade2   430
 6 b      grade3   410
 7 c      grade1   308
 8 c      grade2   300
 9 c      grade3   320
10 d      grade1   201
11 d      grade2   190
12 d      grade3   210
13 e      grade1    99
14 e      grade2   110
15 e      grade3   105

然后要获取图表,您可以简单地执行以下操作:

library(dplyr)
library(ggplot2)
library(tidyr)
df %>% pivot_longer(.,- groups, names_to = "var", values_to = "val") %>%
  ggplot(aes(x= groups, y = val, color = var))+
  geom_point()

在此处输入图像描述

您可以使用scale_color_manual函数控制使用的颜色模式


推荐阅读