r - 是否可以在变异函数图中添加线条/文本/小刻度线/个性化轴?

标签 r plot personalization kriging gstat

我正在尝试使用 plot.variogram 函数将文本、线条、小刻度线和/或个性化轴添加到变异函数中。当我尝试使用传统函数调用(即 text("Text Here"))添加其中任何一个时,它会返回 plot.new 尚未被调用 的错误即使变异函数的绘图窗口已打开。

这是我的代码:

#v is sample variogram, vmf is fitted model
plot(v, model=vmf, xlim=c(0, 65), ylim=c(0,25), xlab="Distance between Point Pairs (km)",
ylab="Semivariance ((C/km) )", cex.xlab=6.5, cex.ylab=6.5, cex.xaxis=2.5, cex.main=5.5)

#Add a 2 to the y label that is in 10 pt. font so it looks like it is (C/km)^2
par(ps=10, cex=1, cex.main=1)
text(-2, 16, labels=2, srt=90)

#Add lines showing the desired point pair distance and semivariance for the problem
par(new=TRUE, lines(c(53,53),c(0,15),col='red'))
par(new=TRUE, lines(c(0, 53),c(15,15),col='red'))

#Add axis minor tick marks in increments of 5
axis(side=1, at=c(0, 5, 15, 25, 35, 45, 55, 65), labels = NA, tck=-0.01, pos=0) 
axis(side=2, at=c(0, 2.5, 7.5, 12.5, 17.5, 22.5, 25),labels = NA, tck=-0.01, pos=0)

我试图通过调用“欺骗”R:

plot(c(0,65), c(0,25))

然后运行上面的代码。这允许传统函数工作,但不幸的是它们不在适当的位置(即 x=5 不在 x 轴上的 5 处)。

对于“欺骗”R 正确绘图的更好方法有什么建议吗?是否有任何函数可以自动将文本、轴等添加到变异函数图中?

如果您还有什么想知道的,请告诉我。

谢谢!

最佳答案

Richard Scriven 的答案在使用 geoR 包时效果很好。

如果使用 gstat 软件包,则所有绘图都需要使用网格图形命令(lattice 软件包和 latticeExtra 软件包)进行修改。 plot.new尚未被调用错误的原因是因为网格图形上使用了基础图形。

绘图修改示例:

使用list创建绘图来修改所有输入参数。 scales 修改 x 和 y 轴,您可以添加刻度线 (at),而无需 labels(请参阅 y 轴列表)。 添加图例。

p1 = plot(v.GF, model=vmf.GF, lwd=2, col.line="black", pch=16, cex=1.5, ylim=c(0,25), xlim=c(0,150), 
      main=list("Gaussian Semivariogram Model for Geothermal Gradient", cex=2),
      xlab=list("Distance between Point Pairs (km)", cex=2), 
      ylab=list(expression("Geothermal Gradient Semivariance (°C/km)"^2), cex=2), 
      scales=list(x=list(at=c(0,25,50,75,100,125,150), labels=c(0,25,50,75,100,125,150)), y=list(at=c(0,2.5,5,7.5,10,12.5,15,17.5,20,22.5,25), labels=c(0,"",5,"",10,"",15,"",20,"",25)), cex=2), 
      key=list(text=list(lab=c("Gaussian Model","Sill","Maximum Interpolation Distance")), space="top", lines=list(col=c("black","black","red"), lwd=2, lty=c(1,2,1)), columns=3, cex=1.5))  

然后使用trellis.focus绘制并修改绘图区域,使用llines添加线条,使用ltext添加文本:

trellis.focus("panel",1,1)
plot(p1)
trellis.focus("panel",1,1)
llines(x=c(50,50), y=c(0,14.5), col="red", lwd=2, lty=1)
llines(x=c(0,50), y=c(14.5,14.5), col="red", lwd=2, lty=1)
llines(x=c(0,150), y=c(vmf.GF$psill[2]+vmf.GF$psill[1],vmf.GF$psill[2]+vmf.GF$psill[1]), col="black", lty=2, lwd=2)
ltext(x=12,y=5,"Nugget ~6.0", cex=1.5)
trellis.unfocus()

这是结果图: enter image description here

关于r - 是否可以在变异函数图中添加线条/文本/小刻度线/个性化轴?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22816571/

相关文章:

r - 加载多个包含逗号或句点作为小数点的 `csv` 文件

r - ggplot2:来自 alpha 的颜色不一致

r - 控制ggplot2中facet_grid/facet_wrap的顺序?

python - 网状结构的配置/安装问题 [R]

r - 如何设置使用plot()标记x轴的方式?

sitecore - 如何在 sitecore 中管理记录的个性化

java - 使用 Lucene 进行个性化搜索

sharepoint - 在删除和恢复配置文件后如何恢复 SharePoint "My Links"?

r - 如何向 ggplot 添加数据标签

Python matplotlib开罗错误