问题
I feel like I've been endlessly searching for a solution to this and cannot find one anywhere. Basically, I need to overlay coloured contour maps as different layers (with different colours) onto a ggmap and cannot get this to work for my life. What I'm trying to do is take the example illustrated here: Overlay two ggplot2 stat_density2d plots with alpha channels only instead of mapping this onto a ggplot(), map it onto a ggmap(). I've read here: ggmap with geom_map superimposed that part of the difficulty in this is nullifying the implicit aesthetics sent from ggmap to ggplot, but I always encounter a whole series of errors regardless of what I do. Some of the errors I've encountered come from not recognizing 'group'. Use of geom_contour gives the following error when using the same format as below (z=X3):
Error in contourLines(x = sort(unique(data$x)), y = sort(unique(data$y)), :
no proper 'z' matrix specified
Part of the difficulty has also been with assigning different colours to the variables. Binding the columns (as done below and in the example linked above) and distinguishing variable a form variable B in column X3 by having an "a" or a "b" in the fourth column 'groups' does not seem to register that well with the scale_color_manual(). Ultimately, I'm trying to find a way of assigning a different color to each column of a data.frame - any thoughts on that would also be helpful.
I've included an example dataset and one of my approaches + errors - any help with this at all would be greatly appreciated (thank you in advance for your time/consideration)! Please let me know if there's anything else I can do to assist!
library(ggplot2)
library(ggmap)
#location defined by lon/lat coordinates
location <- c(-74.03990, 40.52726, -73.68864, 40.81141)
map <- get_map(location = location, scale="auto", zoom=11)
map2 <- ggmap(map)
map2 + stat_density2d(data=d, geom="density2d", aes(x=d[,1],y=d[,2], z=d[,3], color = group,alpha=..level..),size=2, contour=TRUE) +
scale_color_manual(values=c("a"="#FF0000", "b"="#00FF00"))
#Following error received: Error in if (any(h <= 0)) stop("bandwidths must be strictly positive") :
missing value where TRUE/FALSE needed
#Dataset (d):
d = read.table(header=TRUE, text="
X1 X2 X3 group
40.7462 -73.71148 2291 a
40.7566 -73.71418 291 a
40.74715 -73.93975 54579 a
40.77288 -73.9263 4564 a
40.76257 -73.91345 7189 a
40.74463 -73.9202 3643 a
40.77888 -73.90677 8108 a
40.76221 -73.93153 7420 a
40.74512 -73.95693 9 a
NA NA 0 a
40.78075-73.8253 9 a
NA NA 138 a
40.76821 -73.8274 17733 a
40.75145 -73.82103 13321 a
40.78485 -73.84128 7769 a
40.78639 -73.81086 5970 a
40.76047 -73.79637 4045 a
40.79178 -73.77688 0 a
40.78038 -73.78123 2548 a
40.76419 -73.77277 6351 a
40.75657 -73.73784 4000 a
40.77262 -73.74653 1262 a
40.74529 -73.76059 2251 a
40.73963 -73.79449 4730 a
40.72815 -73.78502 2660 a
40.73014 -73.82703 3639 a
40.75172 -73.85182 8450 a
40.76336 -73.87237 3245 a
40.76539 -73.89324 3207 a
40.77389 -73.87348 11932 a
40.75169 -73.88364 6080 a
40.73884 -73.87853 14148 a
40.72642 -73.86153 7352 a
40.72093 -73.84615 15755 a
40.74482 -73.90516 13699 a
40.72474 -73.90964 19479 a
40.71675 -73.8796 3975 a
NA NA 11 a
40.70067 -73.88943 17790 a
NA NA 18 a
40.69402 -73.73622 790 a
40.6981 -73.75899 1104 a
40.67166 -73.75257 4920 a
40.6576 -73.8448 2669 a
40.70792 -73.82821 3400 a
40.68465 -73.84955 3935 a
40.67645 -73.84444 3896 a
40.70027 -73.83597 7791 a
40.68867 -73.82292 2492 a
40.67358 -73.81773 2555 a
40.69406 -73.85863 2568 a
40.66006 -73.73601 2136 a
40.71561 -73.76847 2545 a
40.7143 -73.82726 29 a
40.60775 -74.02394 0 a
40.73642 -73.72238 2336 a
40.7309 -73.74566 2788 a
40.72102 -73.74224 3074 a
40.70977 -73.73865 1396 a
40.64696 -73.78481 36136 a
NA NA 433 a
40.71536 -73.79307 20480 a
40.69816 -73.78689 4812 a
40.67681 -73.77643 10111 a
40.70126 -73.8096 5259 a
40.67581 -73.79662 734 a
NA NA 0 a
40.70128 -73.79597 38 a
NA NA 0 a
40.60128 -73.76165 8987 a
40.59409 -73.7929 1512 a
40.59069 -73.80975 785 a
40.57827 -73.84476 2206 a
NA NA 6 a
40.55569 -73.92066 246 a
40.7462 -73.71148 2662 a
40.7566 -73.71418 323 a
40.74715 -73.93975 57472 a
40.77288 -73.9263 6104 a
40.76257 -73.91345 10050 a
40.74463 -73.9202 5435 a
40.77888 -73.90677 8813 a
40.76221 -73.93153 9495 a
40.74512 -73.95693 104 a
NA NA 987 a
40.78075 -73.8253 0 a
NA NA 0 a
40.76821 -73.8274 22132 a
40.75145 -73.82103 15447 a
40.78485 -73.84128 7983 a
40.78639 -73.81086 9541 a
40.76047 -73.79637 5136 a
40.79178 -73.77688 232 a
40.78038 -73.78123 3259 a
40.76419 -73.77277 11225 a
40.75657 -73.73784 4118 a
40.77262 -73.74653 876 a
40.74529 -73.76059 2696 a
40.73963 -73.79449 7173 a
40.72815 -73.78502 2535 a
40.73014 -73.82703 4119 a
40.75172 -73.85182 10069 a
40.76336 -73.87237 3903 a
40.76539 -73.89324 3207 a
40.77389 -73.87348 8263 a
40.75169 -73.88364 7676 a
40.73884 -73.87853 16452 a
40.72642 -73.86153 10525 a
40.72093 -73.84615 19521 a
40.74482 -73.90516 15876 a
40.72474 -73.90964 18002 a
40.71675 -73.8796 4187 a
NA NA 0 a
40.70067 -73.88943 13158 a
NA NA 0 a
NA NA 0 a
40.69402 -73.73622 1125 a
40.6981 -73.75899 1373 a
40.67166 -73.75257 4921 a
40.6576 -73.8448 3272 a
40.70792 -73.82821 3864 a
40.68465 -73.84955 6213 a
40.67645 -73.84444 3237 a
40.70027 -73.83597 10273 a
40.68867 -73.82292 3022 a
40.67358 -73.81773 2119 a
40.69406 -73.85863 2348 a
40.66006 -73.73601 2399 a
40.71561 -73.76847 2698 a
40.7143 -73.82726 0 a
40.60775 -74.02394 6 a
40.73642 -73.72238 1644 a
40.7309 -73.74566 2662 a
40.72102 -73.74224 1840 a
40.70977 -73.73865 2159 a
40.64696 -73.78481 32803 a
NA NA 0 a
40.71536 -73.79307 17141 a
40.69816 -73.78689 4413 a
40.67681 -73.77643 10162 a
40.70126 -73.8096 6113 a
40.67581 -73.79662 1150 a
NA NA 0 a
40.70128 -73.79597 0 a
NA NA 0 a
40.60128 -73.76165 9230 a
40.59409 -73.7929 1516 a
40.59069 -73.80975 1365 a
40.57827 -73.84476 2477 a
NA NA 0 a
40.55569 -73.92066 0 a
40.65856 -73.83793 485674 a
40.65856 -73.83793 474309 a
40.65856 -73.83793 490781 a
40.65856 -73.83793 485415 a
40.7462 -73.71148 15104 b
40.7566 -73.71418 2127 b
40.74715 -73.93975 425461 b
40.77288 -73.9263 28530 b
40.76257 -73.91345 31037 b
40.74463 -73.9202 17761 b
40.77888 -73.90677 71613 b
40.76221 -73.93153 49392 b
40.74512 -73.95693 26 b
NA NA 0 b
40.78075 -73.8253 22 b
NA NA 422 b
40.76821 -73.8274 129835 b
40.75145 -73.82103 102112 b
40.78485 -73.84128 58960 b
40.78639 -73.81086 44983 b
40.76047 -73.79637 21056 b
40.79178 -73.77688 0 b
40.78038 -73.78123 13793 b
40.76419 -73.77277 35714 b
40.75657 -73.73784 27032 b
40.77262 -73.74653 7736 b
40.74529 -73.76059 10625 b
40.73963 -73.79449 30687 b
40.72815 -73.78502 16195 b
40.73014 -73.82703 15304 b
40.75172 -73.85182 59640 b
40.76336 -73.87237 17290 b
40.76539 -73.89324 26305 b
40.77389 -73.87348 134868 b
40.75169 -73.88364 30477 b
40.73884 -73.87853 97516 b
40.72642 -73.86153 43091 b
40.72093 -73.84615 104323 b
40.74482 -73.90516 87453 b
40.72474 -73.90964 148989 b
40.71675 -73.8796 20918 b
NA NA 31 b
40.70067 -73.88943 106211 b
NA NA 75 b
40.69402 -73.73622 3544 b
40.6981 -73.75899 4854 b
40.67166 -73.75257 32455 b
40.6576 -73.8448 11468 b
40.70792 -73.82821 19029 b
40.68465 -73.84955 20529 b
40.67645 -73.84444 19449 b
40.70027 -73.83597 59519 b
40.68867 -73.82292 11405 b
40.67358 -73.81773 10186 b
40.69406 -73.85863 12451 b
40.66006 -73.73601 11736 b
40.71561 -73.76847 15923 b
40.7143 -73.82726 178 b
40.60775 -74.02394 0 b
40.73642 -73.72238 13449 b
40.7309 -73.74566 22605 b
40.72102 -73.74224 12583 b
40.70977 -73.73865 7087 b
40.64696 -73.78481 293941 b
NA NA 1996 b
40.71536 -73.79307 134835 b
40.69816 -73.78689 35158 b
40.67681 -73.77643 71514 b
40.70126 -73.8096 31573 b
40.67581 -73.79662 2807 b
NA NA 0 b
40.70128 -73.79597 146 b
NA NA 0 b
40.60128 -73.76165 64099 b
40.59409 -73.7929 10962 b
40.59069 -73.80975 4070 b
40.57827 -73.84476 12337 b
NA NA 59 b
40.55569 -73.92066 1289 b
40.7462 -73.71148 27391 b
40.7566 -73.71418 3325 b
40.74715 -73.93975 787094 b
40.77288 -73.9263 56684 b
40.76257 -73.91345 77633 b
40.74463 -73.9202 53017 b
40.77888 -73.90677 119137 b
40.76221 -73.93153 81405 b
40.74512 -73.95693 853 b
NA NA 36030 b
40.78075 -73.8253 0 b
NA NA 0 b
40.76821 -73.8274 217776 b
40.75145 -73.82103 168220 b
40.78485 -73.84128 88312 b
40.78639 -73.81086 158064 b
40.76047 -73.79637 37400 b
40.79178 -73.77688 1694 b
40.78038 -73.78123 22329 b
40.76419 -73.77277 74178 b
40.75657 -73.73784 34693 b
40.77262 -73.74653 9633 b
40.74529 -73.76059 16537 b
40.73963 -73.79449 74371 b
40.72815 -73.78502 19425 b
40.73014 -73.82703 25734 b
40.75172 -73.85182 80863 b
40.76336 -73.87237 38098 b
40.76539 -73.89324 39765 b
40.77389 -73.87348 107770 b
40.75169 -73.88364 53202 b
40.73884 -73.87853 134436 b
40.72642 -73.86153 87298 b
40.72093 -73.84615 182240 b
40.74482 -73.90516 143954 b
40.72474 -73.90964 176588 b
40.71675 -73.8796 32620 b
NA NA 0 b
40.70067 -73.88943 110389 b
NA NA 0 b
NA NA 0 b
40.69402 -73.73622 7605 b
40.6981 -73.75899 7828 b
40.67166 -73.75257 43516 b
40.6576 -73.8448 19379 b
40.70792 -73.82821 27776 b
40.68465 -73.84955 62659 b
40.67645 -73.84444 23544 b
40.70027 -73.83597 111172 b
40.68867 -73.82292 18630 b
40.67358 -73.81773 13640 b
40.69406 -73.85863 14492 b
40.66006 -73.73601 18271 b
40.71561 -73.76847 22171 b
40.7143 -73.82726 0 b
40.60775 -74.02394 45 b
40.73642 -73.72238 12110 b
40.7309 -73.74566 29922 b
40.72102 -73.74224 13098 b
40.70977 -73.73865 17941 b
40.64696 -73.78481 348916 b
NA NA 282 b
40.71536 -73.79307 134967 b
40.69816 -73.78689 49745 b
40.67681 -73.77643 93472 b
40.70126 -73.8096 53065 b
40.67581 -73.79662 7434 b
NA NA 0 b
40.70128 -73.79597 0 b
NA NA 1480 b
40.60128 -73.76165 78882 b
40.59409 -73.7929 14203 b
40.59069 -73.80975 10872 b
40.57827 -73.84476 18295 b
NA NA 0 b
40.55569 -73.92066 0 b
40.7462 -73.71148 66084 c
40.7566 -73.71418 8573 c
40.74715 -73.93975 1843805 c
40.77288 -73.9263 133615 c
40.76257 -73.91345 137850 c
40.74463 -73.9202 81181 c
40.77888 -73.90677 302313 c
40.76221 -73.93153 220023 c
40.74512 -73.95693 301 c
NA NA 0 c
40.78075 -73.8253 92 c
NA NA 1971 c
40.76821 -73.8274 544653 c
40.75145 -73.82103 419811 c
40.78485 -73.84128 259427 c
40.78639 -73.81086 193106 c
40.76047 -73.79637 93157 c
40.79178 -73.77688 0 c
40.78038 -73.78123 60286 c
40.76419 -73.77277 156160 c
40.75657 -73.73784 111577 c
40.77262 -73.74653 31104 c
40.74529 -73.76059 47317 c
40.73963 -73.79449 130814 c
40.72815 -73.78502 67950 c
40.73014 -73.82703 69978 c
40.75172 -73.85182 282942 c
40.76336 -73.87237 77372 c
40.76539 -73.89324 109186 c
40.77389 -73.87348 517378 c
40.75169 -73.88364 134269 c
40.73884 -73.87853 406084 c
40.72642 -73.86153 182311 c
40.72093 -73.84615 438112 c
40.74482 -73.90516 394896 c
40.72474 -73.90964 629891 c
40.71675 -73.8796 92917 c
NA NA 124 c
40.70067 -73.88943 460613 c
NA NA 538 c
40.69402 -73.73622 15340 c
40.6981 -73.75899 20866 c
40.67166 -73.75257 136822 c
40.6576 -73.8448 49428 c
40.70792 -73.82821 80721 c
40.68465 -73.84955 88995 c
40.67645 -73.84444 85021 c
40.70027 -73.83597 261390 c
40.68867 -73.82292 53724 c
40.67358 -73.81773 41492 c
40.69406 -73.85863 49921 c
40.66006 -73.73601 51425 c
40.71561 -73.76847 70338 c
40.7143 -73.82726 818 c
40.60775 -74.02394 0 c
40.73642 -73.72238 53722 c
40.7309 -73.74566 91395 c
40.72102 -73.74224 44871 c
40.70977 -73.73865 31075 c
40.64696 -73.78481 1221994 c
NA NA 7483 c
40.71536 -73.79307 556231 c
40.69816 -73.78689 152664 c
40.67681 -73.77643 302567 c
40.70126 -73.8096 133303 c
40.67581 -73.79662 12025 c
NA NA 0 c
40.70128 -73.79597 632 c
NA NA 0 c
40.60128 -73.76165 268753 c
40.59409 -73.7929 51702 c
40.59069 -73.80975 19536 c
40.57827 -73.84476 55319 c
NA NA 441 c
40.55569 -73.92066 6625 c
40.7462 -73.71148 112122 c
40.7566 -73.71418 13378 c
40.74715 -73.93975 3241581 c
40.77288 -73.9263 261306 c
40.76257 -73.91345 345772 c
40.74463 -73.9202 197763 c
40.77888 -73.90677 493083 c
40.76221 -73.93153 349103 c
40.74512 -73.95693 4638 c
NA NA 105752 c
40.78075 -73.8253 0 c
NA NA 0 c
40.76821 -73.8274 917321 c
40.75145 -73.82103 744570 c
40.78485 -73.84128 393565 c
40.78639 -73.81086 636438 c
40.76047 -73.79637 167972 c
40.79178 -73.77688 7060 c
40.78038 -73.78123 104627 c
40.76419 -73.77277 336880 c
40.75657 -73.73784 152396 c
40.77262 -73.74653 41396 c
40.74529 -73.76059 75838 c
40.73963 -73.79449 313518 c
40.72815 -73.78502 85678 c
40.73014 -73.82703 120070 c
40.75172 -73.85182 514110 c
40.76336 -73.87237 173600 c
40.76539 -73.89324 164016 c
40.77389 -73.87348 427447 c
40.75169 -73.88364 232448 c
40.73884 -73.87853 592870 c
40.72642 -73.86153 360698 c
40.72093 -73.84615 766798 c
40.74482 -73.90516 638015 c
40.72474 -73.90964 800645 c
40.71675 -73.8796 141729 c
NA NA 0 c
40.70067 -73.88943 482254 c
NA NA 0 c
NA NA 0 c
40.69402 -73.73622 33628 c
40.6981 -73.75899 36630 c
40.67166 -73.75257 190158 c
40.6576 -73.8448 85747 c
40.70792 -73.82821 121903 c
40.68465 -73.84955 272359 c
40.67645 -73.84444 86102 c
40.70027 -73.83597 490335 c
40.68867 -73.82292 83703 c
40.67358 -73.81773 62921 c
40.69406 -73.85863 65541 c
40.66006 -73.73601 83175 c
40.71561 -73.76847 96254 c
40.7143 -73.82726 1126 c
40.60775 -74.02394 185 c
40.73642 -73.72238 52068 c
40.7309 -73.74566 96879 c
40.72102 -73.74224 58815 c
40.70977 -73.73865 78567 c
40.64696 -73.78481 1454109 c
NA NA 1223 c
40.71536 -73.79307 582318 c
40.69816 -73.78689 200462 c
40.67681 -73.77643 402264 c
40.70126 -73.8096 231929 c
40.67581 -73.79662 30674 c
NA NA 0 c
40.70128 -73.79597 0 c
NA NA 6474 c
40.60128 -73.76165 338663 c
40.59409 -73.7929 61092 c
40.59069 -73.80975 47794 c
40.57827 -73.84476 77847 c
NA NA 0 c
40.55569 -73.92066 12386 c
40.65856 -73.83793 5476703540 c
40.65856 -73.83793 5342856179 c
40.65856 -73.83793 6195156100 c
40.65856 -73.83793 5515386851 c
40.7462 -73.71148 192 d
40.7566 -73.71418 32 d
40.74715 -73.93975 2496 d
40.77288 -73.9263 569 d
40.76257 -73.91345 932 d
40.74463 -73.9202 462 d
40.77888 -73.90677 743 d
40.76221 -73.93153 857 d
40.74512 -73.95693 3 d
NA NA 28 d
40.78075 -73.8253 4 d
NA NA 25 d
40.76821 -73.8274 1772 d
40.75145 -73.82103 1187 d
40.78485 -73.84128 499 d
40.78639 -73.81086 790 d
40.76047 -73.79637 824 d
40.79178 -73.77688 2 d
40.78038 -73.78123 345 d
40.76419 -73.77277 831 d
40.75657 -73.73784 364 d
40.77262 -73.74653 182 d
40.74529 -73.76059 458 d
40.73963 -73.79449 522 d
40.72815 -73.78502 372 d
40.73014 -73.82703 471 d
40.75172 -73.85182 927 d
40.76336 -73.87237 189 d
40.76539 -73.89324 222 d
40.77389 -73.87348 75 d
40.75169 -73.88364 1309 d
40.73884 -73.87853 1189 d
40.72642 -73.86153 833 d
40.72093 -73.84615 1926 d
40.74482 -73.90516 1367 d
40.72474 -73.90964 904 d
40.71675 -73.8796 428 d
NA NA 4 d
40.70067 -73.88943 1426 d
NA NA 6 d
40.69402 -73.73622 111 d
40.6981 -73.75899 174 d
40.67166 -73.75257 342 d
40.6576 -73.8448 435 d
40.70792 -73.82821 348 d
40.68465 -73.84955 337 d
40.67645 -73.84444 347 d
40.70027 -73.83597 549 d
40.68867 -73.82292 511 d
40.67358 -73.81773 248 d
40.69406 -73.85863 369 d
40.66006 -73.73601 265 d
40.71561 -73.76847 300 d
40.7143 -73.82726 6 d
40.60775 -74.02394 1 d
40.73642 -73.72238 198 d
40.7309 -73.74566 187 d
40.72102 -73.74224 228 d
40.70977 -73.73865 160 d
40.64696 -73.78481 314 d
NA NA 25 d
40.71536 -73.79307 1092 d
40.69816 -73.78689 252 d
40.67681 -73.77643 817 d
40.70126 -73.8096 599 d
40.67581 -73.79662 51 d
NA NA 8 d
40.70128 -73.79597 3 d
NA NA 4 d
40.60128 -73.76165 399 d
40.59409 -73.7929 73 d
40.59069 -73.80975 83 d
40.57827 -73.84476 294 d
NA NA 5 d
40.55569 -73.92066 38 d
40.7462 -73.71148 229 d
40.7566 -73.71418 34 d
40.74715 -73.93975 2744 d
40.77288 -73.9263 679 d
40.76257 -73.91345 1108 d
40.74463 -73.9202 538 d
40.77888 -73.90677 903 d
40.76221 -73.93153 1028 d
40.74512 -73.95693 34 d
NA NA 33 d
40.78075 -73.8253 1 d
NA NA 8 d
40.76821 -73.8274 2704 d
40.75145 -73.82103 1832 d
40.78485 -73.84128 702 d
40.78639 -73.81086 917 d
40.76047 -73.79637 1160 d
40.79178 -73.77688 11 d
40.78038 -73.78123 361 d
40.76419 -73.77277 1010 d
40.75657 -73.73784 442 d
40.77262 -73.74653 165 d
40.74529 -73.76059 584 d
40.73963 -73.79449 643 d
40.72815 -73.78502 449 d
40.73014 -73.82703 582 d
40.75172 -73.85182 1277 d
40.76336 -73.87237 280 d
40.76539 -73.89324 297 d
40.77389 -73.87348 95 d
40.75169 -73.88364 1629 d
40.73884 -73.87853 1498 d
40.72642 -73.86153 1089 d
40.72093 -73.84615 2060 d
40.74482 -73.90516 1492 d
40.72474 -73.90964 1101 d
40.71675 -73.8796 543 d
NA NA 2 d
40.70067 -73.88943 1742 d
NA NA 2 d
NA NA 2 d
40.69402 -73.73622 140 d
40.6981 -73.75899 239 d
40.67166 -73.75257 433 d
40.6576 -73.8448 438 d
40.70792 -73.82821 419 d
40.68465 -73.84955 393 d
40.67645 -73.84444 391 d
40.70027 -73.83597 718 d
40.68867 -73.82292 682 d
40.67358 -73.81773 373 d
40.69406 -73.85863 443 d
40.66006 -73.73601 307 d
40.71561 -73.76847 359 d
40.7143 -73.82726 7 d
40.60775 -74.02394 3 d
40.73642 -73.72238 248 d
40.7309 -73.74566 237 d
40.72102 -73.74224 310 d
40.70977 -73.73865 222 d
40.64696 -73.78481 342 d
NA NA 13 d
40.71536 -73.79307 1220 d
40.69816 -73.78689 298 d
40.67681 -73.77643 939 d
40.70126 -73.8096 823 d
40.67581 -73.79662 98 d
NA NA 27 d
40.70128 -73.79597 3 d
NA NA 9 d
40.60128 -73.76165 490 d
40.59409 -73.7929 90 d
40.59069 -73.80975 132 d
40.57827 -73.84476 330 d
NA NA 2 d
40.55569 -73.92066 48 d")
回答1:
The primary problem seems to be solved by using the correct columns for x and y aesthetics:
p = map2 +
stat_density2d(aes(x=X2 ,y=X1, z=X3, color=group, alpha=..level..),
data=d, size=2, contour=TRUE)
ggsave("map.png", plot=p, height=7, width=7)
来源:https://stackoverflow.com/questions/25513336/overlay-multiple-data-with-2d-density-using-different-colours-onto-ggmap