2013-07-25 16 views
15

Udało mi się utworzyć wykres rozproszenia, z różnymi symbolami dla każdej serii danych. Ale ja chcę zrobić ten sam wykres rozrzutu z punktem, który pojawia się jako liczby. Nie wartość każdego punktu, tylko przypisany numer.R - numery działek zamiast punktów

W tej chwili mam trzy głębokości, które rysuję (0, 3, 6cm). Mam wszystkie moje 0cm jako trójkąty, itp. Chcę, aby moje 0cm punktów były znakami 0, 3cm punkty pokazywały się jako 3, a 6cm punktami pokazywały się jako 6.

Czy to możliwe?

+1

można podać więcej kodu włącznie z danymi określonymi i działki utworzonych? –

Odpowiedz

17

Oczywiście, po prostu podaj parametr pch.

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: jedną miłą rzeczą jest to, że parametr pch, podobnie jak wielu parametrów graficznych bazowe, jest wektoryzowane. Możesz więc zrobić coś takiego (co również działa dla odpowiedzi Agstudy).

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

Uwaga: to rozwiązanie działa tylko w przypadku etykiet pojedynczych znaków. W przypadku wielu etykiet postaci używaj 'text' jako odpowiedzi agstudy. –

17

Można użyć text. Wykorzystując dane @HongOoi:

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

Może również po prostu zrobić 'matplot (dat)' prawdopodobnie –