我正在尝试制作一个有三种形状的散点图(小圆圈,大圆圈和十字形)。
我能够达到我几乎想要的地步,除了我无法弄清楚如何指定形状:
AData=as.data.frame(cbind(x=rnorm(5, 10, 1),y=rnorm(5,10,1)))
AData["Type"] = rep(1,dim(AData)[1])
BData=as.data.frame(cbind(x=rnorm(5, 20, 1),y=rnorm(5,20,1)))
BData["Type"] = rep(2,dim(BData)[1])
CData=as.data.frame(t(c(0,0,3)))
colnames(AData) = c("Ankle.dif", "Knee.dif", "Type")
colnames(BData) = c("Ankle.dif", "Knee.dif", "Type")
colnames(CData) = c("Ankle.dif", "Knee.dif", "Type")
dataFramePlot = rbind(AData, BData, CData)
ggplot(dataFramePlot, aes(x=Ankle.dif, y=Knee.dif)) + geom_point(aes(shape = factor(Type)))
我在这里得到一个圆圈,三角形和正方形,但我更喜欢为这三种类型指定一个小圆圈,一个大圆圈和一个横杆。有任何想法吗?谢谢!
答案 0 :(得分:1)
以下是使用scale_shape_manual
的一种方法。对于形状,您可以在许多地方找到更多信息。这是link给你的。正如下面评论中要求的OP,我修改了图例。
ggplot(dataFramePlot, aes(x=Ankle.dif, y=Knee.dif)) +
geom_point(aes(shape = factor(Type)))+
scale_shape_manual(name = "Data",
values=c(20, 19, 3),
breaks=c("1", "2", "3"),
labels=c("First data", "Second data", "Third data"))