首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R绘图面,包含NA值

R绘图面,包含NA值
EN

Stack Overflow用户
提问于 2014-09-08 15:45:21
回答 2查看 613关注 0票数 0

我想在R中绘制一个3d曲面。我的数据包含NA。

代码语言:javascript
复制
# Topographic Surface Plot wanted!
library(rgl)
x<-seq(from = 0,to = 4000,by = 500)
y<-seq(from = 10,to = 580,by = 60)
z<-matrix(data = rbinom(n = 9*10,size = 10,prob = 0.7),nrow = length(y))
# Everybody can plot this in 3d, but my real world data contains empty space NA values like here:
z[8:10,8:9]<-NA
# Also, the y-axis is not homogeneous, it looks more like this:
y<-y+rbinom(n = length(y),size = 15,prob = 0.4)

需要帮助:如何绘制xyz地形表面?

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2014-09-08 15:59:12

除非您正在尝试生成3D热图,否则看起来您的值太多了。如果要生成曲面图,则Z应为数组,而不是矩阵。再加上现在的情况,Z是以NA值输出的。这是因为z[8:10,8:9]<-NA这一行。

试试这里的建议:R: Plotting a 3D surface from x, y, z

票数 0
EN

Stack Overflow用户

发布于 2014-09-08 20:35:05

您可以尝试使用persp在3D透视图中绘制曲面--它还允许NAs和不均匀分布的x和y值:

代码语言:javascript
复制
# theta and phi control view angle    
persp(x=y,y=x,z=z, theta=50, phi = 40, zlim=c(0,15))

# for fancy colours:
nr <- nrow(z)
nc <- ncol(z)

# Calculate value at center of each cell
zfacet <- (z[-1, -1] + z[-1, -nc] + z[-nr, -1] + z[-nr, -nc])/4

# Generate the desired colors
cols = heat.colors(10)

# Cut matrix values into 10 bins by manual breaks
zbinned <- cut(zfacet, breaks=10)

persp(x=y,y=x,z=z, theta=30, phi = 30, r=2, zlim=c(-15,15), col=cols[zbinned], ticktype='detailed')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25719530

复制
相关文章

相似问题

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