R 为ggplot中的形状定义(不使用默认值)

R 为ggplot中的形状定义(不使用默认值),r,ggplot2,shapes,R,Ggplot2,Shapes,我试图用三种形状(小圆、大圆和十字形)绘制散点图 我能够得到我几乎想要的东西,只是我不知道如何指定形状: 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])

我试图用三种形状(小圆、大圆和十字形)绘制散点图

我能够得到我几乎想要的东西,只是我不知道如何指定形状:

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)))

我在这里得到了一个圆、三角形和正方形,但我更喜欢为这三种类型指定一个小圆、大圆和横杆。有什么想法吗?谢谢

这里有一种方法可以使用
scale\u shape\u手册
。对于形状,您可以在许多地方找到更多信息。这是给你的礼物。根据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"))

谢谢@jazzurro:我该如何具体更改因子(类型)标签,以便不列出“1”、“2”和“3”,而是创建三个字符串标签?@JosephHudson您想要什么标签来代替数字?谢谢@jazzurro:我想要三个标签,比如“第一个数据”、“第二个数据”、“第三个数据”@约瑟夫哈德森:我修改了我的答案。现在你有了你想要的传奇。请看一看。