World Map - Plotting Circles, size of circle relevant to No of
r, world-map
Solution
You can plot this in `ggplot` using:
Recreate your data:
dat <- read.table(text="
ISO3V10 Country 'No of Documents' Lat Lon
ARG Argentina 41 -64 -34
AUS Australia 224 133 -27
CAN Canada 426 -95 60
IRL Ireland 68 -8 53
ITA Italy 583 12.8333 42.8333
NLD Netherlands 327 5.75 52.5
NZL 'New Zealand' 26 174 -41
ESP Spain 325 -4 40
GBR 'United Kingdom' 2849 -2 54
USA 'United States' 3162 -97 38
", header=TRUE)
Load packages and plot:
library(ggplot2)
library(maps)
mdat <- map_data('world')
str(mdat)
ggplot() +
geom_polygon(dat=mdat, aes(long, lat, group=group), fill="grey50") +
geom_point(data=dat,
aes(x=Lat, y=Lon, map_id=Country, size=`No.of.Documents`), col="red")
Problem
I would like to be able to create a world map with the Circles on the graph relevant to the No of Documents. This I have tried to do using the mapBubbles, but when plotting the graph something goes wrong. The data file I have is as below: ``` ISO3V10 Country No of Documents Lat Lon ARG Argentina 41 -64 -34 AUS Australia 224 133 -27 CAN Canada 426 -95 60 IRL Ireland 68 -8 53 ITA Italy 583 12.8333 42.8333 NLD Netherlands 327 5.75 52.5 NZL New Zealand 26 174 -41 ESP Spain 325 -4 40 GBR United Kingdom 2849 -2 54 USA United States 3162 -97 38 ``` The code I have written is below: ``` # Thanks to Andrie for the reproducible code and Paolo for the suggested edit zz <-"ISO3V10 Country No.of.Documents Lat Lon ARG Argentina 41 -64 -34 AUS Australia 224 133 -27 CAN Canada 426 -95 60 IRL Ireland 68 -8 53 ITA Italy 583 12.8333 42.8333 NLD Netherlands 327 5.75 52.5 NZL 'New Zealand' 26 174 -41 ESP Spain 325 -4 40 GBR 'United Kingdom' 2849 -2 54 USA 'United States' 3162 -97 38 " dF2 <- read.table(textConnection(zz), header = TRUE) # dF2 <- read.delim(file="C:\\Users\\js207963\\Documents\\noofpublications_AllUpdated.txt", header = TRUE, sep = "\t") dF2[] par(mai=c(0,0,0.2,0),xaxs="i",yaxs="i") mapBubbles(dF2=getMap(), nameZSize="No.of.Documents", nameZColour="Country",oceanCol="lightblue", landCol="wheat", addLegend=FALSE ``` So the question is can you help me fix the code to plot the data correctly? Cheers, Jess