【问题标题】:How to customize color and shape of points on a plot?如何自定义绘图上点的颜色和形状?
【发布时间】:2021-08-25 20:38:09
【问题描述】:

我在下面创建了一个我想绘制的数据框

Sample <- c("A1","B1","C1","A1","B1","C1")
X <- c(1,1,2,4,3,5)
Y <- c(2,3,1,5,4,6)
df <- data.frame(Sample, X, Y)
df
 Sample X Y
1     A1 1 2
2     B1 1 3
3     C1 2 1
4     A1 4 5
5     B1 3 4
6     C1 5 6

ggplot(data = df, aes(x = X, y = Y, label = Sample)) +
  geom_point()

但是,我希望能够自定义每个点的颜色和形状。例如,我将如何使我的所有“A1”点都是红色和圆形,所有“B1”点都是蓝色和方形,所有“C1”点都是绿色和三角形?

【问题讨论】:

    标签: r


    【解决方案1】:

    通常最简单的方法是映射这些美学,然后使用 scale_*_manual 定义它们的值:

    ggplot(data = df, aes(x = X, y = Y, label = Sample, shape = Sample, color = Sample)) +
      geom_point(size = 3) +
      scale_shape_manual(values = c("A1" = 16, "B1" = 15, "C1" = 17)) +
      scale_color_manual(values = c("A1" = "red", "B1" = "blue", "C1" = "green"))
    

    也可以将每个组指定为一个层,但这很快就会变得很麻烦,并且不适合拥有图例:

    ggplot(df, aes(X, Y)) +
      geom_point(data = filter(df, Sample == "A1"), color = "red", shape = 16, size = 3) +
      geom_point(data = filter(df, Sample == "B1"), color = "blue", shape = 15, size = 3) +
      geom_point(data = filter(df, Sample == "C1"), color = "green", shape = 17, size = 3)
    

    【讨论】:

      猜你喜欢
      • 2015-11-13
      • 2019-11-09
      • 2018-05-20
      • 2021-07-03
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      相关资源
      最近更新 更多