As keen travelers, we absolutely love maps. We have a map of the world hanging in our hallway, an Earth globe in our office and even a map of our hikes in Wallonia (the South of Belgium) next to our door. Visiting a new country is always a great experience and I like nothing more than crossing it off the list… or put it on our travel map! I had made a such a map a few years ago for the blog on the program called ArcGIS, which is one of the most famous programs to handle geographic data and make maps, but there are four main problems with using it to make a travel map:
- The license is too expensive for me to buy,
- It is not easy to reproduce the same maps over the years as the program evolves,
- It is very time consuming to get everything right as you want it.
There is a free alternative to ArcGIS, a tool called QGIS, which is also very good, but presents the same issues regarding reproducibility. So I looked for a solution that would be easy to update every time I travel to a new country, and that’s how I thought of R.
R is a program that was initially used for statistical computing, but you can do pretty much anything you want with it, including maps. It’s free, you can create the map you want and once your script is written, you can use it to reproduce the exact same map as many times as you want, or modify the map as you like. With R, it is easy to update my map regularly and obtain the same look I have chosen in the exact same format.
Of course, everyone has not learned how to code like I had to during my research, so I will here share the code I wrote to make my map. By making little tweaks to the code, you can design your own map with the countries you have had the change to visit in your life. All you have to do is copy the code here below and then paste it in R (or Rstudio). The commands beginning with # are for your information, so read them to know where to adapt the code to make it yours. This is the map I created with the code from below :

If you are absolutely new to R, the only thing you need to change is the list of countries or state of the USA that you have visited. Be careful, each country or state name must be between brackets and the name must be written exactly as it is in the list that I have pasted after the code (see the end of the page).
Have fun!
#This is the code for the same map shown above (grey without borders and countries shown in orange)
#Set the working directory
setwd('Your Own Path') #Between the brackets, replace Your Own Path by the path to the folder you want to work with as in this example : C:\\Users\File
#For the first use of R, install all packages below :
install.packages('sf')
install.packages("rnaturalearth")
install.packages("rnaturalearthdata")
install.packages("showtext")
install.packages("ggplot2")
install.packages('tigris')
#load the packages after they were installed
library('sf')
library("rnaturalearth")
library("rnaturalearthdata")
library("showtext")
library("ggplot2")
library('tigris')
# Load the countries of the world shapefile as an sf object
countries <- ne_countries(scale = "medium", returnclass = "sf")
countries<-countries[,10] #keep only the column with the names of the country
# Load the map of the states of the USA as an sf object
states <- states()
head(states)
susa<-states[,8] #Keep only the names of the states
susa <- st_transform(susa, crs = "WGS84")# project both datasets with the same system
names(countries)<-names(susa)
world<-rbind(countries,susa)
names(world)
world<-world[!world$NAME=='Antarctica',]#I choose to remove Antractica
plot(world)
#Fill in with YOUR list of visited countries, be careful to match the names present in world$name
visitedcountries<-c("Belgium", "Netherlands")
world$visited<-0
world$visited[world$NAME %in% visitedcountries] <- 1
# Project to a spherical projection (I find that prettier)
world_proj <- st_transform(world, crs = "+proj=robin")
#Adapt to the font you want to have
font_add_google("Ubuntu")
showtext_auto()
#Build your map! Here you can choose the color of the non-visited and visited countries manually
ggplot(world_proj) +
geom_sf(aes(fill = as.factor(visited)), color = "lightgrey", size = 0.1) +
scale_fill_manual(
values = c("0" ="lightgrey" ,"1" ="darkorange"),
name = "Countries",
labels = c("Yet to explore", "Traveled"),
) +
theme_minimal() +
theme(
legend.position = "bottom",
panel.grid = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
text = element_text(size=80)
) +
theme(text = element_text(family = "Ubuntu"))
ggsave("CountriesWorldVisited.jpg", width = 5,height = 3, units="in", dpi = 900)
#there you go, your map is saved in your working directory as a JPEG!This is the list of countries/US states to choose from:
[1] “Indonesia”
[2] “Malaysia”
[3] “Chile”
[4] “Bolivia”
[5] “Peru”
[6] “Argentina”
[7] “Dhekelia Sovereign Base Area”
[8] “Cyprus”
[9] “India”
[10] “China”
[11] “Israel”
[12] “Palestine”
[13] “Lebanon”
[14] “Ethiopia”
[15] “South Sudan”
[16] “Somalia”
[17] “Kenya”
[18] “Malawi”
[19] “United Republic of Tanzania”
[20] “Syria”
[21] “Somaliland”
[22] “France”
[23] “Suriname”
[24] “Guyana”
[25] “South Korea”
[26] “North Korea”
[27] “Morocco”
[28] “Western Sahara”
[29] “Costa Rica”
[30] “Nicaragua”
[31] “Republic of the Congo”
[32] “Democratic Republic of the Congo”
[33] “Bhutan”
[34] “Ukraine”
[35] “Belarus”
[36] “Namibia”
[37] “South Africa”
[38] “Saint Martin”
[39] “Sint Maarten”
[40] “Oman”
[41] “Uzbekistan”
[42] “Kazakhstan”
[43] “Tajikistan”
[44] “Lithuania”
[45] “Brazil”
[46] “Uruguay”
[47] “Mongolia”
[48] “Russia”
[49] “Czechia”
[50] “Germany”
[51] “Estonia”
[52] “Latvia”
[53] “Norway”
[54] “Sweden”
[55] “Finland”
[56] “Vietnam”
[57] “Cambodia”
[58] “Luxembourg”
[59] “United Arab Emirates”
[60] “Belgium”
[61] “Georgia”
[62] “North Macedonia”
[63] “Albania”
[64] “Azerbaijan”
[65] “Kosovo”
[66] “Turkey”
[67] “Spain”
[68] “Laos”
[69] “Kyrgyzstan”
[70] “Armenia”
[71] “Denmark”
[72] “Libya”
[73] “Tunisia”
[74] “Romania”
[75] “Hungary”
[76] “Slovakia”
[77] “Poland”
[78] “Ireland”
[79] “United Kingdom”
[80] “Greece”
[81] “Zambia”
[82] “Sierra Leone”
[83] “Guinea”
[84] “Liberia”
[85] “Central African Republic”
[86] “Sudan”
[87] “Djibouti”
[88] “Eritrea”
[89] “Austria”
[90] “Iraq”
[91] “Italy”
[92] “Switzerland”
[93] “Iran”
[94] “Netherlands”
[95] “Liechtenstein”
[96] “Ivory Coast”
[97] “Republic of Serbia”
[98] “Mali”
[99] “Senegal”
[100] “Nigeria”
[101] “Benin”
[102] “Angola”
[103] “Croatia”
[104] “Slovenia”
[105] “Qatar”
[106] “Saudi Arabia”
[107] “Botswana”
[108] “Zimbabwe”
[109] “Pakistan”
[110] “Bulgaria”
[111] “Thailand”
[112] “San Marino”
[113] “Haiti”
[114] “Dominican Republic”
[115] “Chad”
[116] “Kuwait”
[117] “El Salvador”
[118] “Guatemala”
[119] “East Timor”
[120] “Brunei”
[121] “Monaco”
[122] “Algeria”
[123] “Mozambique”
[124] “eSwatini”
[125] “Burundi”
[126] “Rwanda”
[127] “Myanmar”
[128] “Bangladesh”
[129] “Andorra”
[130] “Afghanistan”
[131] “Montenegro”
[132] “Bosnia and Herzegovina”
[133] “Uganda”
[134] “US Naval Base Guantanamo Bay”
[135] “Cuba”
[136] “Honduras”
[137] “Ecuador”
[138] “Colombia”
[139] “Paraguay”
[140] “Brazilian Island”
[141] “Portugal”
[142] “Moldova”
[143] “Turkmenistan”
[144] “Jordan”
[145] “Nepal”
[146] “Lesotho”
[147] “Cameroon”
[148] “Gabon”
[149] “Niger”
[150] “Burkina Faso”
[151] “Togo”
[152] “Ghana”
[153] “Guinea-Bissau”
[154] “Gibraltar”
[155] “United States of America”
[156] “Canada”
[157] “Mexico”
[158] “Belize”
[159] “Panama”
[160] “Venezuela”
[161] “Papua New Guinea”
[162] “Egypt”
[163] “Yemen”
[164] “Mauritania”
[165] “Equatorial Guinea”
[166] “Gambia”
[167] “Hong Kong S.A.R.”
[168] “Vatican”
[169] “Northern Cyprus”
[170] “Cyprus No Mans Area”
[171] “Siachen Glacier”
[172] “Baykonur Cosmodrome”
[173] “Akrotiri Sovereign Base Area”
[174] “Southern Patagonian Ice Field”
[175] “Bir Tawil”
[176] “Australia”
[177] “Greenland”
[178] “Fiji”
[179] “New Zealand”
[180] “New Caledonia”
[181] “Madagascar”
[182] “Philippines”
[183] “Sri Lanka”
[184] “Curaçao”
[185] “Aruba”
[186] “The Bahamas”
[187] “Turks and Caicos Islands”
[188] “Taiwan”
[189] “Japan”
[190] “Saint Pierre and Miquelon”
[191] “Iceland”
[192] “Pitcairn Islands”
[193] “French Polynesia”
[194] “French Southern and Antarctic Lands”
[195] “Seychelles”
[196] “Kiribati”
[197] “Marshall Islands”
[198] “Trinidad and Tobago”
[199] “Grenada”
[200] “Saint Vincent and the Grenadines”
[201] “Barbados”
[202] “Saint Lucia”
[203] “Dominica”
[204] “United States Minor Outlying Islands”
[205] “Montserrat”
[206] “Antigua and Barbuda”
[207] “Saint Kitts and Nevis”
[208] “United States Virgin Islands”
[209] “Saint Barthelemy”
[210] “Puerto Rico”
[211] “Anguilla”
[212] “British Virgin Islands”
[213] “Jamaica”
[214] “Cayman Islands”
[215] “Bermuda”
[216] “Heard Island and McDonald Islands”
[217] “Saint Helena”
[218] “Mauritius”
[219] “Comoros”
[220] “São Tomé and Principe”
[221] “Cabo Verde”
[222] “Malta”
[223] “Jersey”
[224] “Guernsey”
[225] “Isle of Man”
[226] “Aland”
[227] “Faroe Islands”
[228] “Indian Ocean Territories”
[229] “British Indian Ocean Territory”
[230] “Singapore”
[231] “Norfolk Island”
[232] “Cook Islands”
[233] “Tonga”
[234] “Wallis and Futuna”
[235] “Samoa”
[236] “Solomon Islands”
[237] “Tuvalu”
[238] “Maldives”
[239] “Nauru”
[240] “Federated States of Micronesia”
[241] “South Georgia and the Islands”
[242] “Falkland Islands”
[243] “Vanuatu”
[244] “Niue”
[245] “American Samoa”
[246] “Palau”
[247] “Guam”
[248] “Northern Mariana Islands”
[249] “Bahrain”
[250] “Coral Sea Islands”
[251] “Spratly Islands”
[252] “Clipperton Island”
[253] “Macao S.A.R”
[254] “Ashmore and Cartier Islands”
[255] “Bajo Nuevo Bank (Petrel Is.)”
[256] “Serranilla Bank”
[257] “Scarborough Reef”
[258] “Washington”
[259] “Idaho”
[260] “Montana”
[261] “North Dakota”
[262] “Minnesota”
[263] “Michigan”
[264] “Ohio”
[265] “Pennsylvania”
[266] “New York”
[267] “Vermont”
[268] “New Hampshire”
[269] “Maine”
[270] “Arizona”
[271] “California”
[272] “New Mexico”
[273] “Texas”
[274] “Alaska”
[275] “Louisiana”
[276] “Mississippi”
[277] “Alabama”
[278] “Florida”
[279] “South Carolina”
[280] “North Carolina”
[281] “Virginia”
[282] “District of Columbia”
[283] “Maryland”
[284] “Delaware”
[285] “New Jersey”
[286] “Connecticut”
[287] “Rhode Island”
[288] “Massachusetts”
[289] “Oregon”
[290] “Hawaii”
[291] “Utah”
[292] “Wyoming”
[293] “Nevada”
[294] “Colorado”
[295] “South Dakota”
[296] “Nebraska”
[297] “Kansas”
[298] “Oklahoma”
[299] “Iowa”
[300] “Missouri”
[301] “Wisconsin”
[302] “Illinois”
[303] “Kentucky”
[304] “Arkansas”
[305] “Tennessee”
[306] “West Virginia”
[307] “Indiana”

