开发者

Plot a point in a contour plot ggplot2

I have a contour plot in ggplot2 that I want to map one point to.

My contour plot looks like开发者_开发技巧 this:

v = ggplot(pts, aes(theta_1, theta_2, z = z))
v + stat_contour(aes(colour = ..level..),bins=50) 
+ xlab(expression(Theta[1])) + ylab(expression(Theta[2]))

and I have a point that looks like this:

p = ggplot(ts,aes(x,y))
p + geom_point() 

unfortunately the second overwrites the first.

Is there a way to get them to show up on the same plot, similar to MATLAB's "hold on;"?

Thanks!


You can provide the points directly to geom_point():

set.seed(1000)
x = rnorm(1000)
g = ggplot(as.data.frame(x), aes(x = x))
g + stat_bin() + geom_point(data = data.frame(x = -1, y = 40), aes(x=x,y=y))

Plot a point in a contour plot ggplot2


Not sure if this is still of interest, but I think you just needed to save the updated v object then add the point to that, rather than create a new ggplot2 object. For example

v <- ggplot(pts, aes(theta_1, theta_2, z = z))
v <- v + stat_contour(aes(colour = ..level..),bins=50) 
+ xlab(expression(Theta[1])) + ylab(expression(Theta[2]))
v <- v + geom_point(aes(x=ts$x, y=ts$y))
v # to display

ggplot2 is very good at adding layers incrementally, not all have to be based on the same dataset specified in the first ggplot call.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜