首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:在filled.contour图上绘制散点图

R:在filled.contour图上绘制散点图
EN

Stack Overflow用户
提问于 2015-01-31 23:02:52
回答 2查看 1.7K关注 0票数 2

我对R非常陌生,我用插值数据制作了一个filled.contour图,就像在不规则网格上绘制等高线中的数据一样。使用来自在不规则网格上绘制等高线的一些示例数据,我使用以下代码制作了一个filled.contour和简单的散射图

代码语言:javascript
复制
x <- datr$Lat
y <- datr$Lon
z <- datr$Rain

require(akima)
fld <- interp(x,y,z)
filled.contour(fld)
plot(x,y)

是否有办法在同一地块(覆盖)上制作地块(x,y)和filled.contour(fld)?我试过点(x,y),但这与x和y轴不匹配。在Matlab中,我相信我会用暂停来完成这个任务,但我不知道如何在R上完成。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-31 23:34:32

为此,可以使用参数plot.titleplot.axes

代码语言:javascript
复制
x <- 10*1:nrow(volcano)
y <- 10*1:ncol(volcano)
filled.contour(x, y, volcano, plot.title = { 
  points(x = 200, y = 200)
})

(通过)

票数 1
EN

Stack Overflow用户

发布于 2015-02-01 00:41:14

一种方法是读取filled.contour的代码,并进行如下所示的一些黑客操作:

做好你的身材:

代码语言:javascript
复制
filled.contour(fld)

通过从参数列表复制这些常量来定义它们。

代码语言:javascript
复制
nlevels = 20
zlim = range(z, finite = TRUE)
las = 1 
levels = pretty(zlim, nlevels)
xlim = range(x, finite = TRUE)
ylim = range(y, finite = TRUE)
xaxs = "i"
yaxs = "i"
asp = NA

通过从函数体复制代码来计算这些值。

代码语言:javascript
复制
mar.orig <- (par.orig <- par(c("mar", "las", "mfrow")))$mar
w <- (3 + mar.orig[2L]) * par("csi") * 2.54

通过从函数体复制代码来设置布局

代码语言:javascript
复制
layout(matrix(c(2, 1), ncol = 2L), widths = c(1, lcm(w)))

注意到该图形实际上是在颜色标度之后绘制的,但是我们不需要反转布局的顺序,因为layout实际上将“当前”区域设置为最后一个区域,因为第一次调用plot.new将导致当前区域绕到第一个区域。因此,当您设置绘图窗口并通过以下方法绘制点时:

代码语言:javascript
复制
plot.window(ylim=ylim,xlim=xlim)
points(x,y)
title(main='title',
      sub='Sub-Title',
      xlab='This is the x axis',
      ylab='This is the y axis')

它们按需要叠加图形。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28257533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档