[R] Adding lines in ggplot2
ONKELINX, Thierry
Thierry.ONKELINX at inbo.be
Wed Jan 5 14:00:56 CET 2011
Dear Eduardo,
This a solution that you seem to want
n <- 1:10
x <- sqrt(n)
y <- log(n)
qplot(n, x, geom="line", colour="darkgreen") + geom_line(data =
data.frame(n , x = y), colour="red")
But please compare it with the solution (code + result) below.
Formatting the data.frame might be a bit more work, but formatting your
graph is much easier.
n <- 1:10
dataset <-
rbind(
data.frame(Number = n, Function = "sqrt", Result =
sqrt(n)),
data.frame(Number = n, Function = "log", Result =
log(n))
)
#Using the default colours
ggplot(dataset, aes(x = Number, y = Result, colour = Function)) +
geom_line()
#Using user-specified colours
ggplot(dataset, aes(x = Number, y = Result, colour = Function)) +
geom_line() + scale_colour_manual(values = c(sqrt = "darkgreen", log =
"red"))
Think about the gain when you want to display much more than 2 lines...
dataset <- expand.grid(Number = n, Power = seq(0, 2, length = 21))
dataset$Result <- dataset$Number ^ dataset$Power
ggplot(dataset, aes(x = Number, y = Result, colour = factor(Power))) +
geom_line()
HTH,
Thierry
------------------------------------------------------------------------
----
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek
team Biometrie & Kwaliteitszorg
Gaverstraat 4
9500 Geraardsbergen
Belgium
Research Institute for Nature and Forest
team Biometrics & Quality Assurance
Gaverstraat 4
9500 Geraardsbergen
Belgium
tel. + 32 54/436 185
Thierry.Onkelinx op inbo.be
www.inbo.be
To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to
say what the experiment died of.
~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data.
~ Roger Brinner
The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of
data.
~ John Tukey
> -----Oorspronkelijk bericht-----
> Van: r-help-bounces op r-project.org
> [mailto:r-help-bounces op r-project.org] Namens Eduardo de Oliveira Horta
> Verzonden: woensdag 5 januari 2011 3:56
> Aan: r-help
> Onderwerp: [R] Adding lines in ggplot2
>
> Hello,
>
> this is probably a recurrent question, but I couldn't find
> any answers that didn't involve the expression "data
> frame"... so perhaps I'm looking for something new here.
>
> I wanted to find a code equivalent to
>
> > x=sqrt(1:10)
> > y=log(1:10)
> > plot(1:10, x, type="lines", col="darkgreen") lines(1:10, y,
> col="red")
>
> to use with ggplot2. I've tried
>
> > x=sqrt(1:10)
> > y=log(1:10)
> > qplot(1:10, x, geom="line", colour=I("darkgreen"))
> geom_line(1:10, y,
> > colour="red")
> Error: ggplot2 doesn't know how to deal with data of class numeric
>
> but it seems that the "data frame restriction" is really very
> restrictive here. Any solutions that don't imply using
> as.data.frame to my data?
>
> Thanks in advance, and best regards!
>
> Eduardo Horta
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help op 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.
>
More information about the R-help
mailing list