2016-11-16 66 views
-1

我輸入地震數據集,並使用該映射()和mapproj()庫來地震點繪製到地圖。但是我遇到的問題是,如果我想隔離一個我知道有地震點的國家,並再次運行代碼,我無法得到顯示的點數! 這裏的(編輯:整)的代碼,我用:使用地圖功能中的R

library(maps) library(mapproj) EQpoints <- read.csv(file="C:\Users\User\Desktop\EQpoints.csv", head=TRUE, sep=",") map("world",proj="mercator",xlim=c(-170,170)) points(mapproject(list(y=EQpoints[EQpoints$Magnitude>5,]$Latitude, x=EQpoints[EQpoints$Magnitude>5,]$Longitude)),col=2,pch=".",cex=1)

也能正常工作的點映射到地球,但如果我隔離,比方說,中國就像這樣:

map("world","China",col="orange", bg="black") points(mapproject(list(y=EQpoints[EQpoints$Magnitude>5,]$Latitude, x=EQpoints[EQpoints$Magnitude>5,]$Longitude)),col=2,pch=".",cex=1) 的中國地圖出現,但沒有數據顯示出來?

任何建議,我怎麼會解決這一問題?

另外,我也有問題,其中地圖的大小,有時會改變大小,當我重新運行該代碼?任何想法發生了什麼?

感謝

編輯:這是使用輸出dput():

structure(list(Magnitude = c(7.6, 6.9, 7.2, 8.3, 6.9), Latitude = c(52, 
50.71, 60, 60, 60), Longitude = c(172, -179.5, -150, -142, -142 
)), .Names = c("Magnitude", "Latitude", "Longitude"), row.names = c(NA, 
5L), class = "data.frame") 

綜觀數據,前五個條目是在阿拉斯加附近

+1

請後可重複代碼,包括樣本數據集 – HubertL

+0

的數據集是我的電腦,我從www.emdat.be下載的.csv文件,因爲你做的是一個特定的查詢我不能給出一個確切鏈接到它或任何東西網站,它允許您下載具有特定條件的數據的.csv文件。但是我會編輯主帖以包含整個代碼。 – Electrino

+0

加載數據集爲R.輸入'dput(頭(yourdata,5))'複製並粘貼到你的問題。 –

回答

1

在你第二map()命令(中國唯一的地圖),你沒有指定投影!但你確實要求mapproject。那絕對不行。 「mapproject」記住最後使用的投影(嘗試.Last.projection()),但是如果你不指定投影在map()命令可言,它不會被重置。因此,在第二次調用中,您使用mercator作爲點,但緯度/經度爲地圖。

+0

完美工作......我只是一直在學習地圖()函數,所以它仍然有點混亂。感謝您的幫助! – Electrino