# Re: [R] R-help Digest, Vol 35, Issue 7

From: Evgeniy Kachalin <ka4alin_at_yandex.ru>
Date: Mon 09 Jan 2006 - 07:01:44 EST

Uwe Ligges Ð¿Ð¸ÑˆÐµÑ‚:
> Evgeniy Kachalin wrote:
>

```>> Hello, dear participants!
>>
>> Could you tip me, is there any simple and nice way to build
>> scatter-plot for three different types of data (, and o and * - signs,
>> for example) with legend.
>>
>> Now i can guess only that way:
>>
>> plot(x~y,data=subset(mydata,factor1=='1'), pch='.',col='blue')
>> points(x~y,data=subset(mydata,factor1=='2'), pch='*',col='green')
>> points(.... etc
>>
>> What is the simple and nice way?
>> Thank you very much for your kindness and help.
>>
```

>
>
> Example:
>
>
> with(iris,
> plot(Sepal.Length, Sepal.Width, pch = as.integer(Species)))
> with(iris,
> legend(7, 4.4, legend = unique(as.character(Species)),
> pch = unique(as.integer(Species))))
>

Uwe, sorry for my stupid question. You mean that when pch=factor , plot can recycle the factor and use it for subscripts or marks.

Then pch=as.integer(Species) results in c(1,2,3) for 3 factor levels. And I need symbols 15,16,17 and colors red, blue, green.

So then I do:
iris\$Species->spec.symb
iris\$Species->spec.col
levels(spec.symb)<-c(15,16,17)
levels(spec.col)<-c('red','green','blue')

That's the only way?
More of that!!! 'Plot' does not like factors in 'pch'. So it must be so: plot(x~y,data, pch=as.integer(as.character(spec.symb))). That's totally crazy...

--
Evgeniy

R-help@stat.math.ethz.ch mailing list