将点添加到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()
工作,所以我希望不要关闭它。