我用火山数据(矩阵)绘制了一个填充的等高线图。
filled.contour(volcano, color.palette = terrain.colors, asp = 0.5)
现在,我想在图中添加一个点。点应显示火山的最高点。是否可以在不使用ggplot2的情况下添加点?如果是,怎么办?
答案 0 :(得分:2)
我以为您可以找到最大值的位置并使用points()
函数将其添加,但这不起作用,因为绘图中显示的轴坐标与绘图中的内部坐标不同用于放置绘图元素(有关详细信息,请参见here)。
相反,您可以使用plot.axes
的{{1}}参数在正确的位置获得最大值,如here所述。我们还需要使用filled.contour
函数来绘制轴刻度和标签,因为axis
参数会覆盖默认轴。
plot.axes
作为参考,当您在创建图解后尝试添加点时,会发生以下情况:
# 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)
}
)
这是ggplot2版本:
filled.contour(volcano, color.palette = terrain.colors, asp = 0.5)
points(max.point, col="red", pch=17)