1

I am trying to combine geom_map and geom_point in ggplot2 using 2 data frames. When running the first part with geom_point only, I get the right plot. When running both combined geoms_ I get the error:

"Don't know how to automatically pick scale for object of type function. Defaulting to continuous. Error in f(): ! Aesthetics must be valid data columns. Problematic aesthetic(s): label = year. Did you mistype the name of a data column or forget to add after_stat()?"

Here are the data and not functioning codes:

Data

dput(earthquakes1)
structure(list(year = c(1751L, 1751L, 1770L, 1775L, 1775L, 1784L, 
1793L, 1842L, 1860L, 1864L, 1887L, 1953L, 1994L, 2010L, 2018L, 
2021L, 2022L), location_name = c("HAITI: PORT-AU-PRINCE", "HAITI:  PORT-AU-PRINCE", 
"HAITI: PORT-AU-PRINCE", "HAITI: UNKNOWN LOCATION", "HAITI: UNKNOWN LOCATION", 
"HAITI:  PETIT GOAVE,LEOGANE,PORT-AU-PRINCE", "HAITI:  SANTO DOMINGO (ST DOMINGUE)", 
"HAITI:  CAP-HAITIEN", "HAITI: ANSE-A-VEAU", "HAITI:  JACMEL", 
"HAITI:  MOLE SAINT NICOLAS", "HAITI", "HAITI: SAINT-LOUIS DU NORD", 
"HAITI:  PORT-AU-PRINCE", "HAITI: PORT-DEX-PAIX", "HAITI", "HAITI: NIPPES"
), longitude = c(-72.3, -72.3, -73.4, -72.4, -72.4, -72.3, -72.3, 
-72.2, -73.35, -72.53, -74.4, -73.4, -72.799, -72.533, -73.013, 
-73.475, -73.337), latitude = c(18.5, 18.5, 18.5, 19, 19, 18.5, 
19, 19.75, 18.52, 18.2, 19.7, 18.4, 19.803, 18.457, 20.034, 18.408, 
18.458), mag = c(5.61358333333333, 5.61358333333333, 5.61358333333333, 
5.61358333333333, 5.61358333333333, 5.62857666666667, 5.61358333333333, 
8.1, 5.61358333333333, 7.01098333333333, 5.88847666666666, 5.7, 
5.4, 7, 5.9, 7.2, 5.3), deaths = c(NA, NA, 200L, NA, NA, NA, 
NA, 5000L, NA, NA, NA, 2L, 4L, 316000L, 18L, 2248L, 2L), any_missing = c("Missing", 
"Missing", "Missing", "Missing", "Missing", "Missing", "Missing", 
"Not Missing", "Missing", "Missing", "Missing", "Not Missing", 
"Not Missing", "Not Missing", "Not Missing", "Not Missing", "Not Missing"
)), row.names = c(NA, -17L), class = c("tbl_df", "tbl", "data.frame"
))

> dput(world1)

structure(list(long = c(-72.8045883178711, -72.8222122192383, 
-73.0779800415039, -73.2852554321289, -73.2764129638672, -73.1706085205078, 
-73.0691375732422, -72.9192352294922, -72.8045883178711, -71.7792510986328, 
-71.7574234008789, -71.7114715576172, -71.7069320678711, -71.753173828125, 
-71.7464828491211, -71.647216796875, -71.6453094482422, -71.6570281982422, 
-71.7420425415039, -71.80712890625, -71.786376953125, -71.733642578125, 
-71.72705078125, -71.7432174682617, -71.82421875, -71.8665084838867, 
-71.9868698120117, -72.0003890991211, -71.9403839111328, -71.87255859375, 
-71.7619171142578, -71.7372589111328, -71.7637634277344, -71.768310546875, 
-71.8529281616211, -71.9460906982422, -72.0020523071289, -72.0598602294922, 
-72.5035629272461, -72.55322265625, -72.5918960571289, -72.63330078125, 
-72.7552719116211, -72.8766632080078, -73.1600570678711, -73.2722702026367, 
-73.3851547241211, -73.5148391723633, -73.64404296875, -73.747314453125, 
-73.82470703125, -73.8391571044922, -73.8849639892578, -73.9894485473633, 
-74.0854034423828, -74.1946334838867, -74.4190444946289, -74.4599609375, 
-74.4781265258789, -74.3875045776367, -74.2844772338867, -74.2277374267578, 
-74.100341796875, -73.9759750366211, -73.8624954223633, -73.68701171875, 
-73.5915985107422, -72.9172821044922, -72.7893524169922, -72.7394485473633, 
-72.6959991455078, -72.6597671508789, -72.6180648803711, -72.4181137084961, 
-72.3760757446289, -72.3467330932617, -72.34765625, -72.4652328491211, 
-72.6491241455078, -72.8110885620117, -72.7412109375, -72.7679672241211, 
-72.7417984008789, -72.7032241821289, -72.8634262084961, -73.052734375, 
-73.3155212402344, -73.3963394165039, -73.4383773803711, -73.4005355834961, 
-73.3153305053711, -73.2177734375, -73.1177749633789, -72.8765106201172, 
-72.6370162963867, -72.429931640625, -72.2198257446289, -71.9542922973633, 
-71.834716796875, -71.7792510986328, -72.6640625, -72.6234893798828, 
-72.6388702392578, -72.7397918701172, -72.84423828125, -72.87841796875, 
-72.8993225097656, -72.9603576660156, -72.90673828125, -72.8514633178711, 
-72.791015625, -72.6640625), lat = c(18.7776851654053, 18.7071285247803, 
18.7909183502197, 18.896728515625, 18.9540538787842, 18.96728515625, 
18.9320316314697, 18.8614749908447, 18.7776851654053, 19.7181644439697, 
19.6881847381592, 19.486572265625, 19.4219722747803, 19.324462890625, 
19.2858390808105, 19.1959476470947, 19.1635246276855, 19.1307621002197, 
19.0455074310303, 18.9870128631592, 18.9200210571289, 18.8563976287842, 
18.80322265625, 18.73291015625, 18.6455078125, 18.6141605377197, 
18.6103515625, 18.597900390625, 18.5125980377197, 18.4162120819092, 
18.34130859375, 18.2707996368408, 18.2039546966553, 18.0391597747803, 
18.119140625, 18.1860847473145, 18.2120113372803, 18.2285633087158, 
18.2199230194092, 18.2083988189697, 18.1869144439697, 18.1762218475342, 
18.1561527252197, 18.1517562866211, 18.2056140899658, 18.2335453033447, 
18.2511730194092, 18.245361328125, 18.2290534973145, 18.1902351379395, 
18.1217784881592, 18.0582027435303, 18.0418949127197, 18.1431655883789, 
18.2151355743408, 18.2691898345947, 18.34619140625, 18.39306640625, 
18.4500007629395, 18.6247062683105, 18.6566886901855, 18.6626949310303, 
18.64111328125, 18.6014156341553, 18.575439453125, 18.5653324127197, 
18.5223636627197, 18.4557132720947, 18.434814453125, 18.442138671875, 
18.4682140350342, 18.5153312683105, 18.55078125, 18.5586910247803, 
18.574462890625, 18.6237297058105, 18.6749515533447, 18.7435531616211, 
18.8941402435303, 19.0715827941895, 19.13134765625, 19.2406253814697, 
19.3418464660645, 19.4410648345947, 19.5260753631592, 19.6107425689697, 
19.6373043060303, 19.65869140625, 19.7221183776855, 19.8074226379395, 
19.8545894622803, 19.8836917877197, 19.90380859375, 19.9280757904053, 
19.90087890625, 19.8132801055908, 19.74462890625, 19.7216796875, 
19.6967296600342, 19.7181644439697, 20.0375003814697, 20.01416015625, 
19.98583984375, 20.00341796875, 20.0354499816895, 20.0274410247803, 
20.0314464569092, 20.062255859375, 20.0858402252197, 20.0936508178711, 
20.0918941497803, 20.0375003814697), group = c(688, 688, 688, 
688, 688, 688, 688, 688, 688, 689, 689, 689, 689, 689, 689, 689, 
689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 
689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 
689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 
689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 
689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 
689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 
689, 689, 689, 689, 689, 689, 690, 690, 690, 690, 690, 690, 690, 
690, 690, 690, 690, 690), order = c(46417L, 46418L, 46419L, 46420L, 
46421L, 46422L, 46423L, 46424L, 46425L, 46427L, 46428L, 46429L, 
46430L, 46431L, 46432L, 46433L, 46434L, 46435L, 46436L, 46437L, 
46438L, 46439L, 46440L, 46441L, 46442L, 46443L, 46444L, 46445L, 
46446L, 46447L, 46448L, 46449L, 46450L, 46451L, 46452L, 46453L, 
46454L, 46455L, 46456L, 46457L, 46458L, 46459L, 46460L, 46461L, 
46462L, 46463L, 46464L, 46465L, 46466L, 46467L, 46468L, 46469L, 
46470L, 46471L, 46472L, 46473L, 46474L, 46475L, 46476L, 46477L, 
46478L, 46479L, 46480L, 46481L, 46482L, 46483L, 46484L, 46485L, 
46486L, 46487L, 46488L, 46489L, 46490L, 46491L, 46492L, 46493L, 
46494L, 46495L, 46496L, 46497L, 46498L, 46499L, 46500L, 46501L, 
46502L, 46503L, 46504L, 46505L, 46506L, 46507L, 46508L, 46509L, 
46510L, 46511L, 46512L, 46513L, 46514L, 46515L, 46516L, 46517L, 
46519L, 46520L, 46521L, 46522L, 46523L, 46524L, 46525L, 46526L, 
46527L, 46528L, 46529L, 46530L), region = c("Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", "Haiti", 
"Haiti", "Haiti", "Haiti", "Haiti", "Haiti"), subregion = c("Ile de la Gonave", 
"Ile de la Gonave", "Ile de la Gonave", "Ile de la Gonave", "Ile de la Gonave", 
"Ile de la Gonave", "Ile de la Gonave", "Ile de la Gonave", "Ile de la Gonave", 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Ile de la Tortue", 
"Ile de la Tortue", "Ile de la Tortue", "Ile de la Tortue", "Ile de la Tortue", 
"Ile de la Tortue", "Ile de la Tortue", "Ile de la Tortue", "Ile de la Tortue", 
"Ile de la Tortue", "Ile de la Tortue", "Ile de la Tortue")), row.names = c(NA, 
-112L), class = "data.frame")

Code

 #libraries 
 library(tidyverse)
    library(maps)
    library(viridis)
    library(ggrepel)
#plot
ggplot( earthquakes1, aes(longitude, latitude, label = year)) +
      geom_point(data = earthquakes1, aes(longitude, latitude, size = mag, color= mag ))+
     geom_text_repel(box.padding = 0.5, max.overlaps = Inf) +
    
     geom_map(data= world1, map = world1, aes(long, lat, map_id = region ), color= "black", fill="lightgray", show.legend= FALSE) 
AndrewGB
  • 16,126
  • 5
  • 18
  • 49

1 Answers1

0

The issue is that geom_map is trying to use the information from aes that you provide in the first line, ggplot( earthquakes1, aes(longitude, latitude, label = year)). So, when you are going to add another datasource, then you want to add inherit.aes = FALSE, so that it will only use what you provide in that function, which is in geom_map in this case.

#libraries 
library(tidyverse)
library(maps)
library(viridis)
library(ggrepel)

#plot
ggplot(earthquakes1, aes(longitude, latitude, label = year)) +
  geom_map(
    data = world1,
    map = world1,
    aes(map_id = region),
    color = "black",
    fill = "lightgray",
    show.legend = FALSE,
    inherit.aes = FALSE
  ) +
  geom_point(aes(longitude, latitude, size = mag, color = mag)) +
  geom_text_repel(box.padding = 0.5, max.overlaps = Inf)

Output

enter image description here

AndrewGB
  • 16,126
  • 5
  • 18
  • 49