2013-07-25 21 views
15

başarıyla her veri serisi için farklı sembollerle, bir dağılım grafiğini yaptık. Ama ne yapmak istediğim sayı olarak gösterilmesini noktası ile aynı scatterplot yapmaktır. Her bir noktanın değeri değil, sadece atanmış bir sayı. Şu an itibariyle R arsa numaraları yerine noktaları

, ben komplo am üç derinlikleri (0, 3, 6 cm) sahiptir. Tüm 0cm üçgenlerim vb. Var. 0cm puanımın karakter 0 olmasını, 3 cm'nin 3 olarak gösterilmesini ve 6cm puanın 6 olarak gösterilmesini istiyorum.

Bu mümkün mü?

+1

oluşturduğunuz veri kümesine ve arsa dahil daha fazla kod verebilir: @HongOoi verileri kullanarak? –

cevap

17

Tabii, sadece bir karakter olarak pch parametreyi geçmektedir.

dat <- data.frame(x=rnorm(100), y1=rnorm(100)-1, y2=rnorm(100), y3=rnorm(100)+1) 
plot(y1 ~ x, data=dat, pch="0", ylim=c(-4, 4)) 
points(y2 ~ x, data=dat, pch="3") 
points(y3 ~ x, data=dat, pch="6") 

ETA: Bir güzel bir şey pch parametre, birçok baz grafik parametreleri gibi vektörleştirilmiş olmasıdır. Böylece böyle bir şey yapabilirsiniz (bu da Agstudy'un cevabı için de geçerlidir).

dat <- data.frame(x=rnorm(300), y=rnorm(300) + c(0,3,6), depth=rep(c(0,3,6), 100)) 
plot(x ~ y, data=dat, pch=as.character(dat$depth)) 
+8

Not Bu çözüm yalnızca tek bir karakter etiketler için çalışır. Birden fazla karakter etiketi için, agstudy'nin cevabındaki gibi 'text' kullanın. –

17

Sen text kullanabilirsiniz.

dat <- data.frame(x=rnorm(100), y1=rnorm(100)-1, y2=rnorm(100), y3=rnorm(100)+1) 
plot(y1 ~ x, data=dat, type='n', ylim=c(-4, 4))  
text(dat$x,dat$y1,label=0,col='blue') 
text(dat$x,dat$y2,label=1,col='green') 
text(dat$x,dat$y3,label=2,,col='red') 

enter image description here

+0

Ayrıca sadece muhtemelen '' matplot (dat) yapabilirdi –