2 つの連続変数と 1 つの離散変数に関連する測定値について、一連の薄板スプライン応答曲面をプロットしようとしています。これまでのところ、離散変数に基づいてデータをサブセット化してプロットのペアを生成してきましたが、代わりに洗練された格子状のプロットを作成する方法があるはずです。とでヒートマップをファセットすることでこれを行うことができるようですが、私は立ち往生していggplot2
ますgeom_tile
geom_contour
(1) でプロットするためにデータを再編成する (または予測された表面データを解釈する) 方法はggplot2
?
(2) ベース グラフィックスを使用してトレリス化されたヒートマップを作成するための構文は? また
(3) グラフィックスを使用しrsm
てこれを達成する方法 (rsm
高次の曲面に対応できるため、ある程度強制することはできますが、プロットは完全にトレリス化されていません)。
これまで私が取り組んできたものの例を次に示します。
library(fields)
library(ggplot2)
sumframe<-structure(list(Morph = c("LW", "LW", "LW", "LW", "LW", "LW",
"LW", "LW", "LW", "LW", "LW", "LW", "LW", "SW", "SW", "SW", "SW",
"SW", "SW", "SW", "SW", "SW", "SW", "SW", "SW", "SW"), xvalue = c(4,
8, 9, 9.75, 13, 14, 16.25, 17.25, 18, 23, 27, 28, 28.75, 4, 8,
9, 9.75, 13, 14, 16.25, 17.25, 18, 23, 27, 28, 28.75), yvalue = c(17,
34, 12, 21.75, 29, 7, 36.25, 14.25, 24, 19, 36, 14, 23.75, 17,
34, 12, 21.75, 29, 7, 36.25, 14.25, 24, 19, 36, 14, 23.75), zvalue = c(126.852666666667,
182.843333333333, 147.883333333333, 214.686666666667, 234.511333333333,
198.345333333333, 280.9275, 246.425, 245.165, 247.611764705882,
266.068, 276.744, 283.325, 167.889, 229.044, 218.447777777778,
207.393, 278.278, 203.167, 250.495, 329.54, 282.463, 299.825,
286.942, 372.103, 307.068)), .Names = c("Morph", "xvalue", "yvalue",
"zvalue"), row.names = c(NA, -26L), class = "data.frame")
sumframeLW<-subset(sumframe, Morph=="LW")
sumframeSW<-subset(sumframe, Morph="SW")
split.screen(c(1,2))
screen(n=1)
surf.teLW<-Tps(cbind(sumframeLW$xvalue, sumframeLW$yvalue), sumframeLW$zvalue, lambda=0.01)
summary(surf.teLW)
surf.te.outLW<-predict.surface(surf.teLW)
image(surf.te.outLW, col=tim.colors(128), xlim=c(0,38), ylim=c(0,38), zlim=c(100,400), lwd=5, las=1, font.lab=2, cex.lab=1.3, mgp=c(2.7,0.5,0), font.axis=1, lab=c(5,5,6), xlab=expression("X value"), ylab=expression("Y value"),main="LW plot")
contour(surf.te.outLW, lwd=2, labcex=1, add=T)
points(sumframeLW$xvalue, sumframeLW$yvalue, pch=21)
abline(a=0, b=1, lty=1, lwd=1.5)
abline(a=0, b=1.35, lty=2)
screen(n=2)
surf.teSW<-Tps(cbind(sumframeSW$xvalue, sumframeSW$yvalue), sumframeSW$zvalue, lambda=0.01)
summary(surf.teSW)
surf.te.outSW<-predict.surface(surf.teSW)
image(surf.te.outSW, col=tim.colors(128), xlim=c(0,38), ylim=c(0,38), zlim=c(100,400), lwd=5, las=1, font.lab=2, cex.lab=1.3, mgp=c(2.7,0.5,0), font.axis=1, lab=c(5,5,6), xlab=expression("X value"), ylab=expression("Y value"),main="SW plot")
contour(surf.te.outSW, lwd=2, labcex=1, add=T)
points(sumframeSW$xvalue, sumframeSW$yvalue, pch=21)
abline(a=0, b=1, lty=1, lwd=1.5)
abline(a=0, b=1.35, lty=2)
close.screen(all.screens=TRUE)