[R] plot data by class tag

David Winsemius dwinsemius at comcast.net
Fri Aug 27 15:44:46 CEST 2010


On Aug 27, 2010, at 9:09 AM, arvin mer wrote:

> Hello to all,I have a data file as

This came to the list mangled because of your failure to follow  
Posting Guide advice to use plain text. POST IN PLAIN TEXT.

>
 > dput(temp)
structure(list(Class = structure(c(1L, 1L, 2L, 3L, 3L, 2L), .Label =  
c("A",
"B", "C"), class = "factor"), V1 = c(-2, 0.9, 0.1, 4.1, 1, 1.1
), V2 = c(0, 0.7, 0.6, 0.4, 1.9, 0.5)), .Names = c("Class", "V1",
"V2"), class = "data.frame", row.names = c(NA, -6L))

> I am plotting this data in R as V1 verses V2

> > temp<-read.table('temp.dat', header=T)

> > attach(temp)> plot (V1,V2, col='red')

> > text(x=V1, y=V2, labels=Class, pos=4)

> But I want to change the  'plotting symbol'  by the 'Class of  the  
> row' (which is A,B,C).in other words "I want to use the A,B,C  
> instead of red circle and want different color for each class e.g.  
> Red for 'A', Green for 'B'  and so on"
> How to do that ??Thanks in advance

It would seem superfluous to plot with a character and then also label  
it with characters. so see if this gets you any further. Note: I did  
not attach() your dataframe, but rather used with():

with(temp, plot(V1 ,V2, col=c("red", "green", "blue") 
[as.numeric(Class)]))
  ?plot  # tells me that one cannot use a vector of characters for  
plotting symbols
  with(temp, text(x=V1, y=V2, labels=Class, pos=4))

# If you wanted to plot as characters you could use text after  
plotting blanks I suppose.

with(temp, text(x=V1, y=V2, labels=Class, col=c("red", "green", "blue") 
[as.numeric(Class)]))

> Regards
> Arvind
>


David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list