Hi, I was wondering if it was possible to graph three lines in R using fuctions. For instance, how could I get the functions:
3x+1
4x+2
x+1
to show up on the same graph in r? Thanks so much!
Hi, I was wondering if it was possible to graph three lines in R using fuctions. For instance, how could I get the functions:
3x+1
4x+2
x+1
to show up on the same graph in r? Thanks so much!
First decide the bounds, say 0 to 100, and make an empty plot including those points:
plot(c(0,100), c(0,100))
possibly of course with optional parameters such as axes=
, xlab=
, ylab=
, and so on, to control various details of the axes and titling/labeling; then, add each line with abline(a, b)
where b is the slope and a is the intercept, so, in your examples:
abline(1, 3)
abline(2, 4)
abline(1, 1)
Of course there are many more details you can control such as color (col=
optional parameter), line type (lty=
) and width (lwd=
), etc, but this is the gist of it.
Here's another way using matplot:
> x <- 0:10
> matplot(cbind(x, x, x), cbind(3*x+1, 4*x+2, x+1),
type='l', xlab='x', ylab='y')
matplot(X, Y, ...) takes two matrix arguments. Each column of X is plotted against each column of Y.
In our case, X is a 11 x 3 matrix with each column a sequence of 0 to 10 (our x-values for each line). Y is a 11 x 3 matrix with each column computed off the x vector (per your line equations).
xlab
and ylab
just label the x and y axes. The type='l'
specifies that lines are to be drawn (see other options by typing ?matplot
or ?plot
at the R prompt).
One nice thing about matplot is that the defaults can be nice for plotting multiple lines -- it chooses different colors and styles per line. These can also be modified: see ?matplot
(and lty
for more detail).
You can also use the curve
function. For example:
curve(3*x+1, from=-5, to=5)
curve(4*x+2, add=T)
curve(x+1, add=T)
Here the add parameter causes the plots to be put on the same graph