[问题] ggplot叠图

楼主: AndrewShi (没有妳的我)   2019-10-31 18:12:54
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
各位大大好,小弟我想利用R画台湾附近台风的轨迹线,而上网查到一个利用ggplot画
轨迹线的程式范例,因此我就拿来用在我的资料上,然后也上网查了要如何用ggplot画台
湾地图,但ggmap现在似乎要付费才有办法使用,所以我找了另一个用ggplot画台湾地图
的范例,但因为在此之前都没用过ggplot画图过,所以不知道该如何将台风的轨迹线叠加
到台湾地图上,还请教大大们,谢谢。
台风轨迹线资讯和台湾地图的档案皆放在这里:http://0rz.tw/JI056
[程式范例]:
library(csv)
library(ggplot2)
library(dplyr)
library(dplyr)
library(stringr)
library(data.table)
library(maptools)
library(knitr)
library(kableExtr)
#读取台风资料
typhoon <- read.csv("C:\\Users\\TOM\\Desktop\\typhoon.csv")
View(typhoon)
typhoon <- typhoon %>% group_by(CycloneNo) %>%
mutate(state=case_when(StepNo==1 ~ "Start",
StepNo==max(StepNo)~ "End",
T ~ "NA"))
View(typhoon)
#画轨迹线
ggplot(typhoon,aes(x=LongE,y=LatN,group=CycloneNo,color=as.factor(CycloneNo)))
+
geom_path() +
geom_point(data=typhoon %>%
filter(state!="NA"),aes(fill=state,shape=state),size=2 ) +
geom_text(data=typhoon %>%
filter(state=="Start"),aes(label=CycloneNo),color="black",vjust=0,hjust=1) +
guides(colour=F)
#画台湾地图
taiwan_shp <-
readShapeSpatial("C:\\Users\\TOM\\Desktop\\TWN_adm2\\TWN_adm2.shp")
taiwan_map <- fortify(taiwan_shp)
map <- ggplot(taiwan_map, aes(x = long, y = lat, group=group)) +
geom_path() +
coord_map()
[环境叙述]:
画出来的轨迹线和台湾地图分别为下面这两张图,而要叠在一起我想两张图的坐标轴应该
要一致才有办法叠在一起,但我不知道该如何将两者的经纬度调成一样和叠图的设定。
https://imgur.com/yrAJzzn
https://imgur.com/hUTzDvA
[关键字]:
ggplot 叠图 轨迹线 地图
作者: andrew43 (讨厌有好心推文后删文者)   2019-10-31 19:06:00
先画好台湾后面 +geom_path(aes(略), data = pyphoon)
作者: cywhale (cywhale)   2019-10-31 20:52:00
推荐sf twm = sf::st_read("adm2/TWN_adm2.shp")ggplot()+geom_sf(data=twm)+geom_path(data=typhoon,...
楼主: AndrewShi (没有妳的我)   2019-10-31 23:05:00
https://imgur.com/jAB83f3andrew大是指改成这样吗??但改成这样会有错误讯息https://imgur.com/H8d5rKT我用了c大的写法就可以了,感谢andrew大和c大~另外想再请教一个问题,如何我想在台湾的中心点(给定一个经纬度位置)画一个半径300km的空心圆,我可以朝哪个参数设定去想呢??
作者: locka (locka)   2019-11-01 00:17:00
geom_circle() 不要背景颜色就是空心圆了
作者: cywhale (cywhale)   2019-11-01 00:34:00
也可用sf::st_buffer画圆,但单位要转换一下 crs也要设
作者: andrew43 (讨厌有好心推文后删文者)   2019-11-01 10:55:00
我的 “略” 不是留空白啊 XD。c 板主已经清楚说明了,而我的意思和他相同。
楼主: AndrewShi (没有妳的我)   2019-11-02 22:52:00
谢谢l大和c大,我这几天研究看看andrew大~了解,再次谢谢你

Links booklink

Contact Us: admin [ a t ] ucptt.com