There are at least four ways to do this:
1) Use the "horizontal" or "wide" data.frame, called df here
df <- data.frame(x = c(0, 5, 10, 15), y = c(2.2, 3.8, 4.6, 7.6), z = c(4.5, 6.8, 9.3, 10.5)) ggplot(df, aes(x)) + geom_line(aes(y = y, colour = "y")) + geom_line(aes(y = z, colour = "z"))
2) Using the grill
require(lattice) xyplot(x ~ y + z, data=df, type = c('l','l'), col = c("blue", "red"), auto.key=T)
3) Turn your original df into a "long" data.frame. This is how you usually work with data in ggplot2
require("reshape") require("ggplot2") mdf <- melt(df, id="x")

4) Using matplot () I have not studied this parameter very much, but here is an example.
matplot(df$x, df[,2:3], type = "b", pch=19 ,col = 1:2)