如何在填充的轮廓图中添加点?

时间:2019-03-29 20:53:22

标签: r plot contour

我用火山数据(矩阵)绘制了一个填充的等高线图。

filled.contour(volcano, color.palette = terrain.colors, asp = 0.5)

现在,我想在图中添加一个点。点应显示火山的最高点。是否可以在不使用ggplot2的情况下添加点?如果是,怎么办?

1 个答案:

答案 0 :(得分:2)

我以为您可以找到最大值的位置并使用points()函数将其添加,但这不起作用,因为绘图中显示的轴坐标与绘图中的内部坐标不同用于放置绘图元素(有关详细信息,请参见here)。

相反,您可以使用plot.axes的{​​{1}}参数在正确的位置获得最大值,如here所述。我们还需要使用filled.contour函数来绘制轴刻度和标签,因为axis参数会覆盖默认轴。

plot.axes

enter image description here

作为参考,当您在创建图解后尝试添加点时,会发生以下情况:

# Get coordinates of maximum
max.point = (which(volcano==max(volcano), arr.ind=TRUE) - 1)/(dim(volcano) - 1)

# Use plot.axes argument to plot maximum point
filled.contour(volcano, color.palette = terrain.colors, asp = 0.5,
               plot.axes={
                 points(max.point, col="red", pch=16)
                 axis(side=1)
                 axis(side=2)
                 }
               )

enter image description here

这是ggplot2版本:

filled.contour(volcano, color.palette = terrain.colors, asp = 0.5)
points(max.point, col="red", pch=17)

enter image description here