[R] lattice library: xyplot and polygons

Renaud Lancelot renaud.lancelot at cirad.fr
Sun Mar 10 16:43:14 CET 2002


Dear R-Helpers,

Is there a way to draw shaded (filled) polygons in panel graphs produced
by xyplot ? I made different trials (see below) with polygon() and
grid.polygon() but polygons are not drawn (probably for the same reason
that prevents the use of lines, points, etc. in xyplot panels).

Thanks in advance,

Renaud


> Water
     id           label longitude latitude
515  21 Zone inondable  -14.91929 15.27983
516  21 Zone inondable  -14.91803 15.27967
517  21 Zone inondable  -14.91765 15.27990
518  21 Zone inondable  -14.91722 15.28029
519  21 Zone inondable  -14.91706 15.28061
520  21 Zone inondable  -14.91672 15.28125
521  21 Zone inondable  -14.91566 15.28194
522  21 Zone inondable  -14.91470 15.28189
523  21 Zone inondable  -14.91334 15.28132
524  21 Zone inondable  -14.91297 15.28057
525  21 Zone inondable  -14.91362 15.27972
526  21 Zone inondable  -14.91501 15.27931
527  21 Zone inondable  -14.91573 15.27942
528  21 Zone inondable  -14.91609 15.27896
529  21 Zone inondable  -14.91655 15.27799
530  21 Zone inondable  -14.91732 15.27777
531  21 Zone inondable  -14.91802 15.27758
532  21 Zone inondable  -14.91855 15.27808
533  21 Zone inondable  -14.91914 15.27884
534  21 Zone inondable  -14.91929 15.27983
604  25 Zone inondable  -14.89753 15.23055
605  25 Zone inondable  -14.89731 15.22856
606  25 Zone inondable  -14.89784 15.22840
607  25 Zone inondable  -14.89935 15.22814
608  25 Zone inondable  -14.90030 15.22756
609  25 Zone inondable  -14.90119 15.22746
610  25 Zone inondable  -14.90149 15.22777
611  25 Zone inondable  -14.90146 15.22835
612  25 Zone inondable  -14.90228 15.22875
613  25 Zone inondable  -14.90293 15.22937
614  25 Zone inondable  -14.90332 15.23041
615  25 Zone inondable  -14.90298 15.23109
616  25 Zone inondable  -14.90201 15.23152
617  25 Zone inondable  -14.90113 15.23206
618  25 Zone inondable  -14.90051 15.23233
619  25 Zone inondable  -14.90024 15.23305
620  25 Zone inondable  -14.89996 15.23318
621  25 Zone inondable  -14.89902 15.23299
622  25 Zone inondable  -14.89894 15.23189
623  25 Zone inondable  -14.89890 15.23123
624  25 Zone inondable  -14.89800 15.23064
625  25 Zone inondable  -14.89753 15.23055
1098 34 Zone inondable  -14.87331 15.14367
1099 34 Zone inondable  -14.87443 15.14398
1100 34 Zone inondable  -14.87485 15.14436
1101 34 Zone inondable  -14.87541 15.14516
1102 34 Zone inondable  -14.87576 15.14656
1103 34 Zone inondable  -14.87548 15.14816
1104 34 Zone inondable  -14.87483 15.14857
1105 34 Zone inondable  -14.87375 15.14881
1106 34 Zone inondable  -14.87230 15.14951
1107 34 Zone inondable  -14.87142 15.15006
1108 34 Zone inondable  -14.87069 15.15028
1109 34 Zone inondable  -14.86981 15.14998
1110 34 Zone inondable  -14.86803 15.14950
1111 34 Zone inondable  -14.86779 15.14766
1112 34 Zone inondable  -14.86815 15.14673
1113 34 Zone inondable  -14.86889 15.14658
1114 34 Zone inondable  -14.86954 15.14628
1115 34 Zone inondable  -14.87018 15.14572
1116 34 Zone inondable  -14.87097 15.14583
1117 34 Zone inondable  -14.87279 15.14584
1118 34 Zone inondable  -14.87289 15.14478
1119 34 Zone inondable  -14.87331 15.14367
> 
> Asp <- diff(range(Water$longitude)) / diff(range(Water$latitude))
> ### works but polygons are empty
> xyplot(longitude ~ latitude,
+   data = Water, groups = id, aspect = Asp,
+   panel = function(x, y, ...){
+     panel.superpose(x, y, type = "l", col = 1,...)
+   })
> ### does not work
> xyplot(longitude ~ latitude,
+   data = Water, aspect = Asp,
+   panel = function(x, y){
+     for(i in unique(Water$id)){
+       cond <- Water$id == i
+       polygon(x = Water$latitude[cond], y = Water$longitude[cond],
+         border = "black", col = "light blue")
+       }
+   })
> ### does not work
> xyplot(longitude ~ latitude,
+   data = Water, aspect = Asp,
+   panel = function(x, y){
+     for(i in unique(Water$id)){
+       cond <- Water$id == i
+       grid.polygon(x = Water$latitude[cond],
+                    y = Water$longitude[cond],
+                   gp = gpar(col = "black", fill = "light blue"))
+       }
+   })
>

-- 
Dr Renaud Lancelot, vétérinaire
CIRAD, Département Elevage et Médecine Vétérinaire (CIRAD-Emvt)
Programme Productions Animales
http://www.cirad.fr/presentation/programmes/prod-ani.shtml

ISRA-LNERV                      tel    (221) 832 49 02
BP 2057 Dakar-Hann              fax    (221) 821 18 79 (CIRAD)
Senegal                         e-mail renaud.lancelot at cirad.fr
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list