2014-11-05 19 views
1

我正在嘗試繪製三個形狀(小圓圈,大圓圈和十字形)的散點圖。爲ggplot中的形狀定義(不使用默認值)

我能夠得到的地方,我幾乎是我想要的地步,但我無法弄清楚如何指定形狀:

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

我得到一個圓,三角形和正方形在這裏,但我更喜歡爲這三種類型指定一個小圓圈,大圓圈和橫杆。有任何想法嗎?謝謝!

回答

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

enter image description here

+0

感謝@jazzurro:我將如何改變的因素(類型)的標籤明確,以便不用上市 「1」, 「2」 和 「3」,我可以創建三個字符串標籤? – 2014-11-05 03:49:44

+0

@JosephHudson你想要什麼標籤而不是數字? – jazzurro 2014-11-05 03:51:11

+0

謝謝@jazzurro:我想要三個標籤,比如說,「第一個數據」,「第二個數據」,「第三個數據」 – 2014-11-05 04:35:58