2011-12-08 37 views
2

點我有以下幾點:繪製標籤用作R

> x<-runif(20) 
> y<-rnorm(x) 
> g<-rep(factor(LETTERS[1:4]),5) 

我該怎麼辦

> plot(x,y) 

,使得繪製的點是g相應的價值?

謝謝!

+0

我會推薦'ggplot'。請參閱下面的@BenBolker解決方案。喬希是最快的。 –

回答

8

嘗試

plot(x,y,type="n") 
text(x,y,as.character(g)) 

或(強制性ggplot)

library(ggplot2) 
d <- data.frame(x,y,g) 
qplot(x,y,label=g,geom="text",data=d) 

或(格子)

library(lattice) 
xyplot(y~x, 
    panel=function(...) { 
     panel.xyplot(...,type="n") 
     panel.text(x,y,g) }) 

(我不知道該怎麼好這最後的解決辦法,如果一個工作實際上想要使用格子的一些特徵,如將劃分成多個面板......)

6

對於單線解決方案,請使用pch(即'plotting character')參數:

plot(x,y,pch=as.character(g)) 
+1

我發佈了我的答案後,發生在我身上,但將只適用於單字符標籤... –

+0

@BenBolker - 是的,你絕對是更好/更一般的解決方案。此外,還可以提醒劇情人員'type =「n」'選項。 –