tags:

views:

213

answers:

2

In ggplot I can add a series to a plot with:

ggplot(diamonds, aes(x = carat, y = price)) + geom_point()

How do I simply add another series, e.g. plotting the cost of rubies against diamonds. Assuming rubies was also in the diamonds dataset. I have tried to lay over the top another layer with the rubies data, but it just plots the rubies and not the diamonds/carat.

ggplot(diamonds, aes(x = carat, y = price)) + geom_point() + aes(x = rubies, y = price)

I can see that this would be possible by melding all the data together first, ready to plot it, so maybe I should go down that route. However, just adding another series to a plot like this seems like it should not be too hard, but I can't figure out how to do it.

+2  A: 
rubies  <- data.frame( carat = c(3, 4, 5), price= c(5000, 5000, 5000))

p <- ggplot(diamonds, aes(x = carat, y = price)) + geom_point()
p <- p + geom_point(aes(x = rubies$carat, y = rubies$price))
p
momobo
Never use $ in an aes call!
hadley
I see your solution is better. As I am also a newbie working with trial and error, could you tell me why? Also, why the call geom_point() without argument?
momobo
+1  A: 
rubies  <- data.frame(carat = c(3, 4, 5), price= c(5000, 5000, 5000))

ggplot(diamonds, aes(carat, price)) + 
  geom_point() + 
  geom_point(data = rubies, colour = "red")
hadley