我想做一个ggplot2散点图
scores <- data.frame( SampleID = rep(LETTERS[1:3], 5), PC1 = rnorm(15), PC2 = rnorm(15) )
library( ggplot2 )
ggplot( scores, aes( x = PC1, y = PC2, colour = SampleID ) ) +
geom_point()
此代码为渐变中的数据点着色,因此z通常无法真正区分。我看到了
http://docs.ggplot2.org/current/geom_point.html
使用
geom_point(aes(colour = factor(cyl)))
用于着色,但如果我输入
ggplot( scores, aes( x = PC1, y = PC2, colour = SampleID ) ) +
geom_point(aes(colour = factor(cyl)))
我收到错误消息
in factor(cyl) : object 'cyl' not found
有人可以告诉我如何用不是渐变颜色或不同的符号来对散点图进行着色吗?
答案 0 :(得分:6)
scale_color_manual
让你选择使用的颜色。
ggplot( scores, aes( x = PC1, y = PC2, colour = SampleID ) ) +
geom_point() +
scale_color_manual(values = c("red", "black", "dodgerblue2"))
示例中的cyl
是指示例中使用的cyl
数据集的mtcars
列。如果您更愿意使用形状然后使用颜色,请不要使用colour
美学,而是使用shape
美学。
ggplot( scores, aes( x = PC1, y = PC2, shape = SampleID ) ) +
geom_point()
如果您想选择形状(使用通常的R pch
代码),请使用scale_shape_manual
。