Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将点添加到R中的填充轮廓-在正确的位置_R_Plot - Fatal编程技术网

将点添加到R中的填充轮廓-在正确的位置

将点添加到R中的填充轮廓-在正确的位置,r,plot,R,Plot,我想使用以下代码向现有的填充的.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,meshste

我想使用以下代码向现有的
填充的.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)

MyFunction您可以在这里找到详细答案:

简而言之,
填充。轮廓
使用两种不同的坐标系,一种用于填充轮廓,另一种用于图例。要解决问题,您必须使用另一个函数,或者将
放入
绘图。轴
参数:

filled.contour(x,y,z, col=rev(heat.colors(n=20, alpha=0.7)), nlevels=15,
               plot.axes={points(0,0)})

最好的选择是使用@juba提到的
plot.axes
参数。但是,如果在绘图完成后确实需要添加一些内容,则可以使用
locator
单击绘图中的两个点,其中您知道要使用的坐标系中的点的值(对角),然后使用TeachingDemos软件包中的
updateusr
函数将当前坐标系修改为您想要使用的坐标系。然后,您可以使用新的坐标系添加到绘图中(您可能需要设置
par(xpd=NA)
)。

您知道如何使
locator()
使用
填充。等高线
?考虑到两个刻度的问题,我不确定这是否可行。也许你应该尝试另一个功能?这个问题与朱巴提供的链接有些重叠。因为我想让
locator()
工作,所以我希望不要关闭它。