Note that there are some explanatory texts on larger screens.

plurals
  1. POCreating a trellised (faceted) thin-plate spline response surface
    primarykey
    data
    text
    <p>I am trying to plot a bunch of thin-plate spline response surfaces for measurements related to two continuous variables plus one discrete variable. So far, I have been subsetting the data based on the discrete variable to generate pairs of plots, but it seems to me there should be a way to create some slick trellised plots instead. It seems like this could be done by faceting heatmaps in <code>ggplot2</code> with <code>geom_tile</code> and <code>geom_contour</code>, but I am stuck on </p> <p>(1) how to reorganize the data (or interpret the predicted surface data) for plotting with <code>ggplot2</code>? </p> <p>(2) syntax for creating trellised heatmaps with base graphics? or </p> <p>(3) ways to use graphics from <code>rsm</code> to accomplish this (<code>rsm</code> can cope with higher-order surfaces, so I could coerce things to some extent, but plots aren't fully trellised). </p> <p>Here's an example of what I've been working with so far:</p> <pre><code>library(fields) library(ggplot2) sumframe&lt;-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&lt;-subset(sumframe, Morph=="LW") sumframeSW&lt;-subset(sumframe, Morph="SW") split.screen(c(1,2)) screen(n=1) surf.teLW&lt;-Tps(cbind(sumframeLW$xvalue, sumframeLW$yvalue), sumframeLW$zvalue, lambda=0.01) summary(surf.teLW) surf.te.outLW&lt;-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&lt;-Tps(cbind(sumframeSW$xvalue, sumframeSW$yvalue), sumframeSW$zvalue, lambda=0.01) summary(surf.teSW) surf.te.outSW&lt;-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) </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload