Jd *_*aba 6 gis plot r contour ggplot2
我想用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")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Error in contour.default(x, y, z, add = TRUE, col = "black") : increasing 'x' and 'y' values expected
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用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
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
警告信息:
Not possible to generate contour data
Run Code Online (Sandbox Code Playgroud)
请在以下位置找到数据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)
Run Code Online (Sandbox Code Playgroud)
这是使用该image
函数的替代图(这允许一些灵活性来添加较低级别的绘图函数(需要此处的image.scale
函数):
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)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3184 次 |
最近记录: |