Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 带栅格的地图中相交的线(ggplot)_R_Ggplot2_Grid_Maps - Fatal编程技术网

R 带栅格的地图中相交的线(ggplot)

R 带栅格的地图中相交的线(ggplot),r,ggplot2,grid,maps,R,Ggplot2,Grid,Maps,我在使用R中创建的地图时遇到了一些困难。我正在尝试使用网格制作地图,其中每个正方形中都有一个对应于数据帧的值。到目前为止,我根据一些教程和帖子制作了shapefile和脚本,但是最终的结果有点奇怪 library(xlsx) library(ggplot2) library(sp) library(raster) library(plyr) library(dplyr) library(tidyr) library(sp) library(raster) library(rgeos) libra

我在使用R中创建的地图时遇到了一些困难。我正在尝试使用网格制作地图,其中每个正方形中都有一个对应于数据帧的值。到目前为止,我根据一些教程和帖子制作了shapefile和脚本,但是最终的结果有点奇怪

library(xlsx)
library(ggplot2)
library(sp)
library(raster)
library(plyr)
library(dplyr)
library(tidyr)
library(sp)
library(raster)
library(rgeos)
library(rgbif)
library(viridis)
library(gridExtra)
library(rasterVis)
library(ggplot2)
library(maps)
library(rgdal)

br <- readOGR(choose.files(), "brgrid")
plot(br)
class(br)
str(br@data)
br@data$id <- rownames(br@data)
br.df <- fortify(br)
br.df <- join(br.df, br@data, by="id")
str(br.df)
tail(br.df)
names(br.df)
tail(br.df$id)

dados <- read.xlsx("ptsgrid.xlsx",6)
names(dados)

br.df <- merge(br.df, dados, by.x="id", by.y="id", all.x=T, a..ly=F)
str(br.df)

ggp <- ggplot(data=br.df, aes(x=long, y=lat, group=group)) 
ggp <- ggp + geom_polygon(aes(fill=value))         # draw polygons
ggp <- ggp + geom_path(color="grey", linestyle=1)  # draw boundaries
ggp <- ggp + coord_equal() 
ggp <- ggp + scale_fill_gradient(low = "#ffffcc", high = "#ff4444", 
                                 space = "Lab", na.value = "grey50",
                                 guide = "colourbar")
print(ggp)

我想知道为什么地图上的线交叉了,以及如何修复它。另外,我想知道是否有可能省略一些方块,我只对沿海地区感兴趣,所以如果省略其余的方块会更好。最后,我不知道为什么地图边界会被覆盖,可能是投影问题?

欢迎使用堆栈溢出!到目前为止你做了什么/你的代码是什么样子的?我将与您分享我制作的一张地图/代码,该地图/代码按照我的意图运行,因此您可以用您的需要/以下数据替换我代码中的值,这是我在R中为美国收入创建的地图的代码:

library(maps)
library(ggplot2)
usa=map_data("state")

ggplot(usa)+geom_polygon(aes(x=long,y=lat,group=group,fill=region),color="white")+coord_fixed(1.3)+guides(fill=FALSE,color=FALSE)
上述代码的结果:
我下载了你的数据集。我没有检查你的代码。但我认为,当您使用merge创建br.df时,顺序混乱了。在您的代码中,我指的是这一行br.df欢迎使用SO。我假设您的形状文件是您在问题中无法显示的。但是,您至少希望在问题中提供代码。在这种情况下,您希望在提问时提供最少的数据和代码。这允许用户立即查看您的案例。否则,您获得帮助的机会就会减少。您好@jazzurro,谢谢您的回复。因此,我已经分享了我在帖子中制作的脚本和形状文件。该链接是否不起作用,或者是否不允许在SO中使用外部链接?我认为您希望在您的问题中提供您的代码。目前,您有一个图形和文本。这不是一个好的格式。至于你的数据,如果在你的问题中无法上传,你可以提供一个链接。但您可能不会马上收到帮助,因为许多用户往往不会从外部链接下载文件。我还鼓励您提供准备好的文件。例如,这里有一个rar文件。这意味着您要求SO用户将其解包。您可能需要提供.shp文件。然后,阅读文件就简单多了。我有时间查看你的文件。据我所知,共有150个网格。我假设您希望所有这些都有值。但是,excel文件中有148个数据点。为什么会这样?@jazzurro噢,我很感谢你的提示,两个丢失的网格只是我的错误。嗨@SRVFan。因此,在我的例子中,我尝试了ggplotdata=br.df,aesx=long,y=lat,group=group+geom\u polygonesfill=value+geom\u pathcolor=grey,linestyle=1+coord\u equal+scale\u fill\u gradientlow=ffffffcc,high=ff4444,space=Lab,na.value=grey50,guide=colorbar,但分别添加geom\u路径和geom\u多边形,也许我应该决定要保留哪一个?谢谢你的帮助。我尝试了ggplotteste1.df+geom_polygonex=long,y=lat,group=id,fill=value,color=white+coord_fixed1.3+guides-fill=FALSE,color=FALSE,但这些三角形仍然出现。@jazzuro这正是我要找的,谢谢。
library(rgdal)
library(ggplot2)
library(ggalt)
library(readxl)

# Create a map data
foo <- readOGR(dsn = "brgrid.shp")
mygrid <- fortify(foo)

# Import the EXCEL data
dados <- read_excel("ptsgrid.xlsx", sheet = 6)

ggplot() +
geom_cartogram(data = mygrid, map = mygrid, 
               aes(x = long, y = lat, map_id = id), 
               color = "black", alpha = 0.5) +
geom_cartogram(data = dados, map = mygrid, 
               aes(fill = value, map_id = id)) +
scale_fill_gradient(low = "#ffffcc", high = "#ff4444", 
                    space = "Lab", na.value = "grey50",
                    guide = "colourbar")