2011-11-09 20 views
5

Desidero sviluppare wireframe come trama con non numerico su asse X, Y, ma numerico su asse Z.R: wireframe come trama 3D per variabili categoriali

# mydata 
set.seed(123) 
yv <- rnorm(20, 10, 3) 
gen <- rep(paste("G", 1:5, sep= ""), 4) 
env <- c(rep(c("CA","MN","SD", "WI"), each = 5)) 
mdf <- data.frame(yv, gen, env) 

Ho provato ad utilizzare lattice:

require(lattice) 
wireframe(yv,gen, env, data = mdf) 

Error in UseMethod("wireframe") : 
    no applicable method for 'wireframe' applied to 
    an object of class "c('double', 'numeric')" 

Eventuali suggerimenti apprezzato.

risposta

5

Questo sembra funzionare:

set.seed(123) 
mdf <- data.frame(yv=rnorm(20, 10, 3), 
        gen=rep(paste("G", 1:5, sep= ""), 4), 
        env=c(rep(c("CA","MN","SD", "WI"), each = 5))) 
library(lattice) 
wireframe(yv~gen*env,data=mdf,scales=list(arrows=FALSE)) 

enter image description here

+0

+1 più se si può far sembrare una gru di origami. –

3

Il modo più semplice per utilizzare le funzioni in lattice è quello di utilizzare l'interfaccia di formula.

Supponendo che yv è la variabile indipendente:

wireframe(yv ~ gen + env, data = mdf) 

enter image description here