在等高线图ggplot2中绘制一个点

时间:2010-10-19 04:51:27

标签: r ggplot2

我在ggplot2中有一个轮廓图,我想将一个点映射到。

我的轮廓图看起来像这样:

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]))

我有一个看起来像这样的观点:

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

不幸的是,第二个覆盖了第一个。

有没有办法让它们出现在同一个地块上,类似于MATLAB的“坚持;”?

谢谢!

2 个答案:

答案 0 :(得分:7)

您可以直接向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))

alt text

答案 1 :(得分:0)

不确定这是否仍然有用,但我认为你只需要保存更新的v对象然后添加点,而不是创建一个新的ggplot2对象。例如

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非常擅长以递增方式添加图层,并非所有图像都必须基于第一个ggplot调用中指定的相同数据集。