我想filled.contour
使用以下代码为现有的绘图添加一个点:
MyFunction <- function(x,y){
return(dnorm(sqrt(x^2+y^2)))
}
wrapper <- function(x, y, my.fun, ...) {sapply(seq_along(x), FUN = function(i) my.fun(x[i], y[i], ...))}
meshstep <- 0.5
x<- seq(-20,20,meshstep)
y <-seq(-20,20,meshstep)
z <- outer(x,y,FUN = wrapper, my.fun=MyFunction)
filled.contour(x,y,z, col=rev(heat.colors(n=20, alpha=0.7)), nlevels=15)
points(0,0)
Run Code Online (Sandbox Code Playgroud)
我很惊讶points(0,0)
没有给出情节的原点,但大致位于x = 10,y = 0.此外,locator()
似乎也提示相对于"新"坐标系的坐标.这是为什么?
最好的选择是使用plot.axes
@juba提到的参数。但是,如果您确实需要在绘图完成后添加一些内容,那么您可以locator
单击绘图中的 2 个点,您知道要使用的坐标系中的点的值(对角),然后使用updateusr
TeachingDemos 包中的函数可将当前坐标系修改为您想要使用的坐标系。然后,您可以使用新的坐标系添加到绘图中(您可能需要设置par(xpd=NA)
)。