r - 如何自定义绘图上点的颜色和形状?
问题描述
我在下面创建了一个要绘制的数据框
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”点都是绿色和三角形?
解决方案
通常最简单的方法是映射这些美学,然后使用以下方法定义它们的值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)
推荐阅读
- wordpress - 调用未定义函数 wp()
- clang - 错误:为 aarch64_be 编译 compiler-rt ASAN 运行时时静态断言失败
- mysql - MYSQL用SUM减去两个表
- animation - 使用 gnuplot 在标签中显示列值
- flutter - 无法将 Firestore 中的值保存在列表中
- tableau-api - 获取账单编号的总值 - Tableau 计算字段
- node.js - 如何验证用户是否拥有来自 keyvault 的访问权限?
- java - Java中是否有获取对象的数字引用值的标准方法?
- java - 使用 Json 数据的 Java 中不可解析的日期异常
- c++ - c ++遍历列表[然后操作来自同一类的不同迭代器]