Re: [R] graphics

From: Deepayan Sarkar <deepayan.sarkar_at_gmail.com>
Date: Wed 31 Aug 2005 - 04:49:49 EST

On 8/30/05, Karsten Rincke <rincke@physik.uni-kassel.de> wrote:
> Hello,
> I guess a have a very simple problem though up to now couldn't solve it:
> I want to plot two datasets wihtin one plot like plot(x) provides it for
> one dataset(type="b" that is: points connected by lines).
> Example data 'x':
> Befragung1 Befragung2 Befragung3 Geschlecht
> 2.25 2.34 1.78 weiblich
> 1.34 3.45 2.23 maennlich
> The two rows of the example above form two datasets. Now I'm looking for
> something like plot(~x |Geschlecht, ... ): X-axis containing
> Befragung1...3, y-axis containing the values given by the matrix 'x',
> points within one dataset (row of 'x') connected by lines.
> I already tried various possibilities provided by 'lattice' or 'grid' -
> but there seems to be a basic misunderstanding on my side so that I
> could not produce any good result.
> Would by very happy to get some hints!

R likes data vectors to be columns, not rows. With your data, you could try

matplot(t(mydata[, 1:3]), type = 'b')

but it would probably make more sense to have the data in a different format to begin with. It could either be in the `wide' format:

Befragung weiblich maennlich

1           2.25      1.34
2           2.34      3.45
3           1.78      2.23


or the `long' format:

Befragung   y         Geschlecht
1           2.25      weiblich
2           2.34      weiblich
3           1.78      weiblich
1           1.34      maennlich
2           3.45      maennlich
3           2.23      maennlich



With the wide format you could use matplot as before, or use xyplot from lattice:

mydata <-

    read.table(textConnection("
Befragung weiblich maennlich

1           2.25      1.34
2           2.34      3.45
3           1.78      2.23"), header = TRUE)

xyplot(maennlich + weiblich ~ Befragung,
       data = mydata,
       type = 'b',
       auto.key = TRUE)


With the long format, you could similarly do:

mydata <-

    read.table(textConnection("

Befragung   y         Geschlecht
1           2.25      weiblich
2           2.34      weiblich
3           1.78      weiblich
1           1.34      maennlich
2           3.45      maennlich
3           2.23      maennlich

"), header = TRUE)

xyplot(y ~ Befragung, data = mydata, groups = Geschlecht,

       type = 'b', auto.key = TRUE)

Hope that helps,

-Deepayan



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Wed Aug 31 04:55:18 2005

This archive was generated by hypermail 2.1.8 : Sun 23 Oct 2005 - 16:09:08 EST