R 尝试使用属性在tmap shapefile中打印

R 尝试使用属性在tmap shapefile中打印,r,plot,shapefile,qgis,tmap,R,Plot,Shapefile,Qgis,Tmap,我正在尝试处理挪威的市政数据,我对QGIS、Shapefile和R中的绘图一无所知。我从这里下载市政数据: 可复制文件如下: 我已经下载了QGIS,因此我可以在那里打开GEOJson文件并将其转换为shapefile。我可以这样做,并将数据读入R: library(sf) test=st_read("C:/municipality_shape.shp") head(test) 我自己给了不同的城市不同的值/等级,我称之为faktor,我将该分类存储在我称之为df_new的数据框中。我希望

我正在尝试处理挪威的市政数据,我对QGIS、Shapefile和R中的绘图一无所知。我从这里下载市政数据:

可复制文件如下:

我已经下载了QGIS,因此我可以在那里打开GEOJson文件并将其转换为shapefile。我可以这样做,并将数据读入R:

library(sf)
test=st_read("C:/municipality_shape.shp")
head(test)

我自己给了不同的城市不同的值/等级,我称之为faktor,我将该分类存储在我称之为df_new的数据框中。我希望将此“分类”合并到上面的“测试”对象上,并希望将带有“分类”属性的地图绘制到地图上:

test33=merge(test, df_new[,c("Kommunekode_str","faktor")],
             by=c("Kommunekode_str"), all.x=TRUE)
这是可行的,但当我要用
tmap
绘制它时

library(tmap)
tmap_mode("view")
tm_shape(test33) + 
  tm_fill(col="faktor", alpha=0.6, n=20, palette=c("wheat3","red3")) + 
  tm_borders(col="#000000", lwd=0.2)
它抛出此错误

对象中的错误[-omit,drop=FALSE]:错误数量 尺寸 如果我只使用底图

plot(test33)
我明白了:


你看,我有三个情节。这与我上面的错误有关吗?

我认为这里的主要问题是您试图绘制的形状太复杂,因此
tmap
很难加载所有这些数据
ggplot
也无法加载多边形

如果你正在制作一个choropleth贴图,你可能不需要在多边形中有这么多的精确性,所以我建议首先简化你的多边形。根据我的经验,最好的方法是使用包
rmapshaper

#keep=0.02将仅保留多边形中2%的点。

亲爱的编辑:编辑后链接似乎不起作用!非常感谢。嗨,不要将数据作为图像发布,你需要提出堆栈溢出的问题,干杯。我想提出一个好问题=(@jay.sf:感谢您的帮助!我也将test33的dput添加到我的github存储库中了!非常感谢!我不理解错误,但这并不奇怪,我不了解Shapefile、layers或任何这些,但我感谢您的帮助=)您应该查看
?classIntervals
中列出的
样式
选项,并研究合适的类结构。更改类间隔可能会影响地图显示的信息。非常感谢!我现在非常高兴=)