2012-09-26 4 views
5

Ho un set di dati costituito da 3 colonne in un file .csv. Le prime 2 colonne sono coordinate della mappa e la terza è la percentuale di zinco che si trova in un pozzo nelle corrispondenti coordinate della mappa. Vorrei creare una mappa dei contorni per mostrare la variazione della concentrazione Zn con la distanza. Tutti gli esempi di codice che sono stato in grado di trovare usano i dati sotto forma di una matrice, mentre i miei sono in liste. Ho provato diversi modi di tracciare questo che ho mostrato sotto, la maggior parte dei metodi mi dà messaggi di errore sulla falsariga di "oggetto x non trovato" che penso abbia a che fare con il layout dei miei dati. Qualcuno sa come fare questo? Ho aggiunto un set di dati simile al mio di seguito. Grazie per l'aiuto in anticipo. AgrifoglioCreazione di un contorno di contorno riempito utilizzando i dati negli elenchi

set di dati:

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 

Codice:

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))) 

risposta

8

Lavorando con ggplot2, è possibile creare una trama di contorno con i tuoi dati esempio dato utilizzando:

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

a dare

enter image description here

Si sono verificati un paio di problemi con il codice ggplot2. In particolare, dove hai impostato l'estetica che avevi:

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

Ah, quindi stavo solo usando la funzione sbagliata. Funziona ma è possibile riempire le linee con il colore? –

+0

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

+0

Grazie! Quando i due sono combinati questo è sicuramente il tipo di trama che sto cercando. Tuttavia, la chiave per la densità non dà il valore di zinco, fornisce valori di e-08 –