我导入了一个地震数据集,并使用map()和mapproj()库将地震点绘制到地图上。但我遇到的问题是,如果我想隔离一个我知道其中有地震点的国家,再次运行代码,我就无法得到积分! 这是我正在使用的(编辑:整个)代码:
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")
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")
查看数据,前五个条目是围绕阿拉斯加
答案 0 :(得分:1)
在您的第二个'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=db',
'username' => 'root',
'password' => '',
'charset' => 'utf8mb4',
命令(仅限中国地图)中,您没有指定投影!但是您可以通过map()
来获取积分。这绝对不行。 &#34; mapproject
&#34;记住上次使用的投影(尝试mapproject
),但如果您未在.Last.projection()
命令中指定投影,则不会重置。因此,在第二次调用中,您使用map()
作为点,但是使用lat / lon作为地图。