2014-09-03 1 views
1

J'essaie de faire une carte pour montrer les concentrations de chrome enregistrées dans la couche arable en Écosse (n = 1000). Ce qui suit est un sous-ensemble des données:cartographie des concentrations chimiques avec ggplot

 Easting Northing Concentration 
1 -4.327230 55.94000  1.913814 
2 -4.336588 55.77886  1.408240 
3 -4.334057 55.93637  1.798651 
4 -4.340633 55.94451  1.629410 
5 -4.341627 55.77247  1.382017 
6 -4.354362 55.78004  1.432969 
7 -4.327912 55.94871  1.488551 
8 -4.301948 55.77286  1.278754 
9 -4.317669 55.77715  1.465383 
10 -4.266635 55.77981  1.793092 
11 -4.349507 55.77358  1.336460 
12 -4.331458 55.92509  1.546543 
13 -4.360420 55.77211  1.720986 
14 -4.316048 55.93779  1.876795 
15 -4.348813 55.92620  1.637490 
16 -4.358550 55.92574  1.460898 
17 -4.271819 55.88522  2.011570 
18 -4.350699 55.93884  1.385606 
19 -4.323065 55.78208  1.620136 
20 -4.305748 55.94769  1.463893 
21 -4.324094 55.76453  1.416641 
22 -4.311998 55.77294  1.390935 
23 -4.295788 55.77657  1.378398 
24 -4.351286 55.94323  1.485721 
25 -4.344118 55.78473  1.623249 
26 -4.358147 55.93492  1.454845 
27 -4.310889 55.78653  1.372912 
28 -4.270665 55.77506  1.706718 
29 -4.341747 55.78244  1.561101 
30 -4.312615 55.93929  1.521138 
31 -4.330014 55.78626  1.564666 
32 -4.328320 55.95283  2.313656 
33 -4.334340 55.93043  2.007748 
34 -4.317788 55.76303  1.309630 
35 -4.342244 55.93936  1.680336 
36 -4.351105 55.94818  1.673942 
37 -4.351354 55.93379  1.396199 
38 -4.318706 55.93135  1.854913 
39 -4.315999 55.93428  1.361728 
40 -4.326163 55.78588  1.646404 
41 -4.302010 55.78203  2.023664 
42 -4.318585 55.78720  1.305351 
43 -4.304388 55.94097  1.465383 
44 -4.309106 55.93414  1.539076 
45 -4.297275 55.77474  1.503791 
46 -4.298785 55.93290  1.447158 
47 -4.326837 55.77311  1.555094 
48 -4.342423 55.92641  1.338456 
49 -4.332528 55.77228  1.491362 
50 -4.347461 55.78197  1.426511 

str(dat.tmp) 

    'data.frame': 50 obs. of 3 variables: 
$ Easting  : num -4.33 -4.34 -4.33 -4.34 -4.34 ... 
$ Northing  : num 55.9 55.8 55.9 55.9 55.8 ... 
$ Concentration: num 1.91 1.41 1.8 1.63 1.38 ... 

C'est le code que je utilise actuellement pour produire les concentrations sur une carte de Glasgow:

qmap(location="glasgow", maptype = "terrain",zoom=10,color="bw" 
    ,extent="panel", 
    maprange=FALSE) + 
    stat_contour(data = dat.tmp, geom="polygon", 
       aes(x =Easting, y = Northing, z = Concentration 
        , fill = ..level..)) + 
    scale_fill_continuous(name = "Cu (mg/kg)", low = "yellow", high = "red") 

Lors de l'exécution, cela est de retour:

Error in unit(tic_pos.c, "mm") : 'x' and 'units' must have length > 0 
In addition: Warning message: 
Not possible to generate contour data 

Ceci est un problème similaire à un post précédent - la carte/l'intrigue que j'essaie de créer est très similaire aussi.

Filled contour plot with R/ggplot/ggmap

Toute aide serait grandement appréciée - merci.

+1

Vous mappez 'z = glas.dat.A_Cu_mg_kg', mais ce n'est pas présent dans l'ensemble de données, est-ce juste une faute de frappe? – tonytonov

+0

désolé, oui c'est une faute de frappe - c'est en fait 'z = Concentration' dans mon script qui donne l'erreur ci-dessus. des pensées sur ce que le problème pourrait être avec la correction de faute de frappe? merci :) – user3310449

+0

S'il vous plaît modifier la question en conséquence. Il serait également utile de réduire le problème à un jeu de données minimal qui [reproduit] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) l'erreur , de sorte que tout le monde peut copier et coller les données et le code. – tonytonov

Répondre

0

J'ai reproduit l'erreur, et aussi repéré un avertissement:

message d'avertissement: pas possible de générer des données de contour

A points de google rapide à un similar question, qui est résolu par à l'aide stat_density2d au lieu de stat_contour:

qmap(location="glasgow", maptype = "terrain", zoom=10, color="bw", 
    extent="panel", maprange=FALSE) + 
    stat_density2d(data=dat, 
       aes(x=Easting, y=Northing, z=Concentration, fill=..level..)) 

enter image description here

+0

Oui, j'ai déjà essayé cela mais les contours sont simplement des représentations de la densité d'échantillon basée sur les références Est et Nord. Pour voir ce que je veux dire, retirez 'z = Concentration' du code et exécutez. – user3310449

+0

Ah, d'accord. De toute façon, il y a un commentaire sur la question que probablement une grille équidistante est nécessaire. La réponse acceptée est-elle utile? – tonytonov

Questions connexes