2012-09-26 13 views
5

Tengo un conjunto de datos que consta de 3 columnas en un archivo .csv. Las primeras 2 columnas son coordenadas de mapa y la tercera es el porcentaje de zinc encontrado en un pozo en las coordenadas de mapa correspondientes. Me gustaría crear un mapa de contorno para mostrar la concentración de Zn cambia con la distancia. Todos los ejemplos de código I han podido encontrar datos de uso en forma de matriz, mientras que los míos están en listas. He intentado varias formas diferentes de trazar esto que he mostrado debajo, la mayoría de los métodos me dan mensajes de error en la línea de "objeto x no encontrado", que creo que tiene que ver con el diseño de mis datos. ¿Alguien sabe como hacer esto? He agregado un conjunto de datos similar al mío a continuación. Gracias por cualquier ayuda de antemano. aceboCrear un gráfico de contorno relleno usando datos en las listas

conjunto de datos:

Statsrep <- structure(list(X = c(156000L, 156010L, 156421L, 156450L, 156500L, 156700L, 158420L, 158646L, 158970L, 159050L, 159050L, 159130L, 159155L), Y = c(143630, 143980, 147260, 145000, 146000, 142800, 146700, 145207, 147170, 145200, 144800, 147815, 145890), Zn = c(2, 8, 4, 0, 3, 0, 2, 7, 12, 0, 4, 19, 0)), .Names = c("X", "Y", "Zn"), row.names = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L), class = "data.frame") 
Statsrep 

Código:

library(ggplot2) 
Grade <- read.csv(file="filename.csv", header=TRUE, sep=",") 
ggplot(Grade, aes(x$x="X", y$y="Y", z$z="Zn")) + 
stat_contour() 

library(lattice) 
Grade <- read.csv(file="filename.csv", header=TRUE, sep=",") 
levelplot(Grade ~x*y, data = Zn, 
xlab = "Eastings", ylab = "Northings", 
col.regions = terrain.colours) 

Grade <- read.csv(file="filename.csv", header=TRUE, sep=",") 
x$x <- X 
y$y <- Y 
z$z <- Zn 
filled.contour(x$x, y$y, z$z, color = terrain.colours, 
xlab = "Eastings", ylab = "Northings"), 
plot.axes = {axis(1, seq(156000, 165000, by=1000)); axis(2, seq(142000, 150000, by=1000))}, 
key.title = title(main="Zn content\n(percent)"), 
key.axes= axis(4, seq(0, 20, by = 2))) 

Respuesta

8

Trabajar con ggplot2, puede crear un gráfico de contorno con los datos de ejemplo que utiliza:

ggplot(Statsrep, aes(x=X, y=Y, z=Zn)) + 
    geom_density2d() 

a dar

enter image description here

Tuviste un par de problemas con el código ggplot2. En particular, donde establece la estética que tenía:

aes(x$x="X", y$y="Y", z$z="Zn") 
+0

Ah, solo estaba usando la función incorrecta. Esto funciona, pero ¿es posible llenar las líneas de color? –

+0

Pruebe: 'g + stat_density2d (aes (fill = .. density ..), contour = FALSE, geom =" tile ")' – csgillespie

+0

¡Gracias! Cuando los dos se combinan, es definitivamente el tipo de trama que estoy buscando. Sin embargo, la clave para la densidad no da el valor de zinc, da valores de e-08 –

Cuestiones relacionadas