使用rworldmap画出加拿大地图,并在地图上标注人口稀少的地区

##SQL的好处来自于将数据库托管在远程位置。这样你不需要保存在本地内存中数据库,你可以在SQL数据库上执行操作只有获取你所认为是有用的。


#安装RSQLite和DBI包

library(RSQLite)

library(DBI)

```

```{r}

#建立一个连接对象

dbcon = dbConnect(SQLite(), dbname = "/Users/katherine/Desktop/stat240\ sol/project.sqlite")

#查看是否连接到数据库,如果连接到数据库,我们应该能够使用dbListTables看到数据库中的表的列表。

dbListTables(dbcon)

```

```{r}

#安装sp和rworldmap方便画地图

library(sp)

library(rworldmap)

library(rworldxtra)

worldmap = getMap(resolution = "high")

dim(worldmap)

```

##建立查询语句

##使用SQL在加拿大地图上标注出2006年人口小于1000的地方

```{r}

#合并两个表,因为一个表中有经纬度而人口在另一个表格中

sql_join = "SELECT * FROM CA INNER JOIN POP2006 ON CA.Geographic_name=POP2006.Geographic_name WHERE Population__2006 < 1000"

join = dbGetQuery(dbcon,sql_join)

#画出北美地图

NrthAm = worldmap[which(worldmap$REGION == "North America"),]

plot(NrthAm,col = "white",bg = "lightblue",xlim = c(-140,-55),ylim = c(55,60))

points(join$Longitude,y=join$Latitude,col="red",pch=16)

```

##制作一个2006年各个地区的人口密度图

```{r}

boxplot(join[, "Population__2006"]/join[,"Total_private_dwellings__2006"] ~join[,"Prov_acr"], las = 2, xlab = "Provinces",ylab = "Population per private dwelling",

main = "Population density from 2006")

```

你可能感兴趣的:(使用rworldmap画出加拿大地图,并在地图上标注人口稀少的地区)