2016-11-16 45 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