[問題] 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()
[環境敘述]:
畫出來的軌跡線和台灣地圖分別為下面這兩張圖,而要疊在一起我想兩張圖的坐標軸應該
要一致才有辦法疊在一起,但我不知道該如何將兩者的經緯度調成一樣和疊圖的設定。


[關鍵字]:
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
" target="_blank" rel="nofollow">
andrew大是指改成這樣嗎??但改成這樣會有錯誤訊息" target="_blank" rel="nofollow">
我用了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