Re: [R] Bode plots in ggplot2

From: ONKELINX, Thierry <Thierry.ONKELINX_at_inbo.be>
Date: Thu, 7 Feb 2008 12:19:52 +0100

Tribo,

Suppose you dataset is called bode. Then "melt" it:

Melted <- melt(bode, id.var = c("frequency", "system")

Then you'll get something like.

frequency | system | variabele | value
0 | system 1 | phase | 0
0 | system 1 | gain | 100

then this line below should do the trick (untested)

ggplot(Melted, aes(x = frequency, y = value, colour = system)) + geom_line() + facet_grid(system ~ .) + scale_x_log10()

HTH, Thierry

PS read the posting guide. A small, reproducible sample of data and code would make things easier for us.  




ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature and Forest
Cel biometrie, methodologie en kwaliteitszorg / Section biometrics, methodology and quality assurance
Gaverstraat 4
9500 Geraardsbergen
Belgium
tel. + 32 54/436 185
Thierry.Onkelinx_at_inbo.be
www.inbo.be

Do not put your faith in what statistics say until you have carefully considered what they do not say. ~William W. Watt A statistical analysis, properly conducted, is a delicate dissection of uncertainties, a surgery of suppositions. ~M.J.Moroney

-----Oorspronkelijk bericht-----
Van: r-help-bounces_at_r-project.org [mailto:r-help-bounces_at_r-project.org] Namens Tribo Laboy
Verzonden: donderdag 7 februari 2008 11:57 Aan: r-help_at_r-project.org
Onderwerp: [R] Bode plots in ggplot2

Hello,

I am trying to figure out how to make a bode plot (a.k.a. bode diagram) in ggplot2.

An example of such a diagram can be found here:

http://meweb.ecn.purdue.edu/~me475/ctm/freq/bode2.GIF

The example above shows the gain and phase characteristic of a linear system.
In my case, I would like to compare visually several systems on the same diagram.

The data in the data frame is arranged like this:

frequency | gain | phase | system
0.0 | 1.0 | 0.0 | system 1
0.5 | 1.2 | -0.1 | system 1
1.0 | 1 .4| -0.2 | system 1

.
.
0.0 | 2.2 | 0.0 | system 2
0.5 | 2.2 | -0.5 | system 2
1.0 | 2 .4| -0.6 | system 2

.
.
.

First problem is, I would expect I'll need to use layers (for each "plot", "panel", "axes", whatever it is called) in ggplot, but I don't know how.
The second problem is that those two "panels" need to have a common legend (or "key"), which says "system 1" "system 2" . And that doesn't seem to be trivial either.

Any help appreciated,

Regards,

TL



R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.

R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Thu 07 Feb 2008 - 11:37:57 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 07 Feb 2008 - 14:30:13 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive