library(maps)
library(ggmap)
## 载入需要的程辑包:ggplot2
## Google's Terms of Service: https://cloud.google.com/maps-platform/terms/.
## Please cite ggmap if you use it! See citation("ggmap") for details.
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v tibble  3.1.6     v dplyr   1.0.7
## v tidyr   1.1.4     v stringr 1.4.0
## v readr   2.1.1     v forcats 0.5.1
## v purrr   0.3.4
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
## x purrr::map()    masks maps::map()
my_world_data<-map_data("world")
ggplot(data=my_world_data, mapping=aes(x=long,y=lat,group=group))+
  geom_polygon(fill="white",color="black")

germany_france<-
  filter(my_world_data,region=="Germany" |region=="France"  )
ggplot(data=germany_france, mapping=aes(x=long,y=lat,group=group))+
  geom_polygon(fill="white",color="black")

a_region<-
  filter(my_world_data,long>=10 & long<=15.1 & lat>=32 & lat<=55 )
ggplot(data=a_region, mapping=aes(x=long,y=lat,group=group))+
  geom_polygon(fill="white",color="black")

library(data.table)
## 
## 载入程辑包:'data.table'
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last
## The following object is masked from 'package:purrr':
## 
##     transpose
map_test<-map_data("state")
ggplot(data=map_test, mapping=aes(x=long,y=lat,group=group))+
  geom_polygon(fill="white",color="black")

states<-unique(map_test$region)
somee_data_values<-data.frame(
  "region"=states,
  "qual_values"=c(rep(LETTERS[1:10],4),LETTERS[1:9]),
  "quant_values"=runif(49,0,5)
  
)
map_data_conbined<-left_join(map_test,somee_data_values,by="region")
ggplot(data=map_data_conbined, mapping=aes(x=long,y=lat,group=group,fill=quant_values))+
  geom_polygon(color="black")

ggplot(data=map_data_conbined, mapping=aes(x=long,y=lat,group=group,fill=factor(quant_values)))+
  geom_polygon(color="black")+
  theme_classic()+
  labs(x="",y="",title = "A test choropleth")+
  theme(axis.text.x = element_blank(),axis.text.y = element_blank(),axis.line = element_blank(),axis.ticks  = element_blank())+
  scale_fill_brewer(aesthetics ="Spectral")

japan_map<-
  filter(my_world_data,region=="Japan" )
ggplot(data=japan_map, mapping=aes(x=long,y=lat,group=group))+
  geom_polygon(fill="white",color="black")

head(maps::world.cities)
##                 name country.etc   pop   lat  long capital
## 1 'Abasan al-Jadidah   Palestine  5629 31.31 34.34       0
## 2 'Abasan al-Kabirah   Palestine 18999 31.32 34.35       0
## 3       'Abdul Hakim    Pakistan 47788 30.55 72.11       0
## 4 'Abdullah-as-Salam      Kuwait 21817 29.36 47.98       0
## 5              'Abud   Palestine  2456 32.03 35.07       0
## 6            'Abwein   Palestine  3434 32.03 35.20       0
world_city<-maps::world.cities
japan_cities<-filter(world_city,country.etc=="Japan")
ggplot(data=japan_map, mapping=aes(x=long,y=lat,group=group))+
  geom_polygon(fill="white",color="black")+
  geom_point(data=japan_cities,aes(x=long,y=lat,group=NULL),color="red")

head(maps::world.cities)
##                 name country.etc   pop   lat  long capital
## 1 'Abasan al-Jadidah   Palestine  5629 31.31 34.34       0
## 2 'Abasan al-Kabirah   Palestine 18999 31.32 34.35       0
## 3       'Abdul Hakim    Pakistan 47788 30.55 72.11       0
## 4 'Abdullah-as-Salam      Kuwait 21817 29.36 47.98       0
## 5              'Abud   Palestine  2456 32.03 35.07       0
## 6            'Abwein   Palestine  3434 32.03 35.20       0
world_city<-maps::world.cities
japan_cities_big<-filter(world_city,country.etc=="Japan" & pop>=500000)
ggplot(data=japan_map, mapping=aes(x=long,y=lat,group=group))+
  geom_polygon(fill="white",color="black")+
  geom_point(data=japan_cities_big,aes(x=long,y=lat,group=NULL,size=pop),color="red")

japan_cities_big$qual<-sample(LETTERS[1:5],nrow(japan_cities_big),replace=TRUE)
ggplot(data=japan_map, mapping=aes(x=long,y=lat,group=group))+
  geom_polygon(fill="white",color="black")+
  geom_point(data=japan_cities_big,aes(x=long,y=lat,group=NULL,size=pop,color=qual))