gpt4 book ai didi

r - 是否可以在 R 中创建没有连续数据的 3d 等高线图?

转载 作者:行者123 更新时间:2023-12-04 14:30:46 26 4
gpt4 key购买 nike

我想用 x,y,z 数据创建变量 z 的轮廓。但是,似乎我们需要按升序提供数据。

我尝试使用一些代码,但它给了我错误。

我尝试了以下代码: 试验 1:

age2100 <- read.table("temp.csv",header=TRUE,sep=",")

x <- age2100$x
y <- age2100$y
z <- age2100$z

contour(x,y,z,add=TRUE,col="black")

我收到以下错误
Error in contour.default(x, y, z, add = TRUE, col = "black") : increasing 'x' and 'y' values expected

然后我尝试使用 ggplot2 创建轮廓。我使用了以下代码:
library("ggplot2")
library("MASS")
library("rgdal")
library("gpclib")
library("maptools")
age2100 <- read.table("temp.csv",header=TRUE,sep=",")
v <- ggplot(age2100, aes(age2100$x, age2100$y,z=age2100$z))+geom_contour()
v

我收到以下错误:

警告信息:
Not possible to generate contour data 

请在以下位置查找数据 https://www.dropbox.com/s/mg2bo4rcr6n3dks/temp.csv

谁能告诉我如何从 temp.csv 的第三个变量 (z) 创建轮廓数据?我需要多次执行这些操作,因此我尝试使用 R 而不是 Arcgis。

最佳答案

这是一个如何使用 interp 进行插值的示例来自 akima包裹:

age2100 <- read.table("temp.csv",header=TRUE,sep=",")

x <- age2100$x
y <- age2100$y
z <- age2100$z

require(akima)

fld <- interp(x,y,z)

par(mar=c(5,5,1,1))
filled.contour(fld)

enter image description here

这是使用 image 的替代图函数(这样可以灵活地添加较低级别的绘图函数(需要 image.scale 函数,找到 here ):
source("image.scale.R") # http://menugget.blogspot.de/2011/08/adding-scale-to-image-plot.html

x11(width=5, height=6)
layout(matrix(c(1,2), nrow=1, ncol=2), widths=c(4,1), height=6, respect=TRUE)
layout.show(2)

par(mar=c(4,4,1,1))
image(fld)
contour(fld, add=TRUE)
points(age2100$x,age2100$y, pch=".", cex=2)

par(mar=c(4,0,1,4))
image.scale(fld$z, xlab="", ylab="", xaxt="n", yaxt="n", horiz=FALSE)
box()
axis(4)
mtext("text", side=4, line=2.5)

enter image description here

关于r - 是否可以在 R 中创建没有连续数据的 3d 等高线图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14375320/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com