更新后 ggpattern 中的模式不遵循多边形边界
Pattern in ggpattern doesn't follow polygon borders after update
我用 sf 包中的空间特征制作了一些地图,并使用 ggpattern 创建了条纹填充。这适用于某些多边形,但不适用于其中有洞的多边形(湖泊特征 class 中的岛屿)。
最近更新了 ggpattern 包以处理带孔的多边形(对此我很感激!),并且它不再给出这些特征的错误,但现在所有特征的图案填充都是错误的(有和没有)孔),因为它不再遵循多边形边界,而是填充多边形周围的矩形。
这是一个使用 rnaturalearth 包的示例来说明我的意思。
#devtools::install_github("coolbutuseless/ggpattern")
library(ggpattern)
library(rnaturalearth)
germany <- ne_countries(country='germany', returnclass='sf')
ggplot() + geom_sf_pattern(data = germany)
这给了我这个结果。
这里是我实际地图的图片before and after无孔多边形的 ggpattern 更新,使用未更改的代码和数据。
我查看了 ggpattern 页面,看看是否缺少需要更改的某些参数,但似乎找不到问题所在。我对 R 比较陌生,所以也许我忽略了一些东西。如果能帮我指明正确的方向,我将不胜感激!
我遇到了同样的问题。如果你继续Github,它已经报告了错误。但是,提出的解决方案对我不起作用。所以我建议你一个替代解决方案。
devtools::install_github("statnmap/HatchedPolygons")
require(HatchedPolygons)
require(rnaturalearth)
ger <- st_as_sf(germany)
hatch <- hatched.SpatialPolygons(ger, density = 4, angle = 45)
hatch <- hatch %>% sf::st_set_crs(st_crs(germany))
ggplot(germany) +
geom_sf() +
geom_sf(data = hatch)
如果您想要特定的阴影区域,您应该首先创建所需的阴影多边形,然后将其剪裁到您的数据中,最后将其绘制为 sf 对象。
请使用 remotes::install_github(coolbutuseless/ggpattern)
将您的 {ggpattern}
和 {gridpattern}
软件包更新到最新(开发)版本。 geom_sf_pattern()
模式 clipping/masking 存在一些问题,已于上周(2022 年 1 月 16 日至 20 日)修复。理论上它现在应该可以工作了。您不需要使用不同的 OS.
如果它仍然不起作用,请尝试一些解决方法:
使用 options(ggpattern_use_R4.1_features = FALSE)
明确关闭(或打开)R 4.1 功能。通常这不应该明确需要,因为 {gridpattern}
可以猜测活动图形设备中的 R 4.1 支持...
使用不同的图形设备(例如 pdf()
或 ragg::agg_png()
而不是默认的交互式 windows 设备来保存图像。使用 pdf/png 查看器,当图像文件为 over-written.
时自动刷新
我用 sf 包中的空间特征制作了一些地图,并使用 ggpattern 创建了条纹填充。这适用于某些多边形,但不适用于其中有洞的多边形(湖泊特征 class 中的岛屿)。
最近更新了 ggpattern 包以处理带孔的多边形(对此我很感激!),并且它不再给出这些特征的错误,但现在所有特征的图案填充都是错误的(有和没有)孔),因为它不再遵循多边形边界,而是填充多边形周围的矩形。
这是一个使用 rnaturalearth 包的示例来说明我的意思。
#devtools::install_github("coolbutuseless/ggpattern")
library(ggpattern)
library(rnaturalearth)
germany <- ne_countries(country='germany', returnclass='sf')
ggplot() + geom_sf_pattern(data = germany)
这给了我这个结果。
这里是我实际地图的图片before and after无孔多边形的 ggpattern 更新,使用未更改的代码和数据。
我查看了 ggpattern 页面,看看是否缺少需要更改的某些参数,但似乎找不到问题所在。我对 R 比较陌生,所以也许我忽略了一些东西。如果能帮我指明正确的方向,我将不胜感激!
我遇到了同样的问题。如果你继续Github,它已经报告了错误。但是,提出的解决方案对我不起作用。所以我建议你一个替代解决方案。
devtools::install_github("statnmap/HatchedPolygons")
require(HatchedPolygons)
require(rnaturalearth)
ger <- st_as_sf(germany)
hatch <- hatched.SpatialPolygons(ger, density = 4, angle = 45)
hatch <- hatch %>% sf::st_set_crs(st_crs(germany))
ggplot(germany) +
geom_sf() +
geom_sf(data = hatch)
如果您想要特定的阴影区域,您应该首先创建所需的阴影多边形,然后将其剪裁到您的数据中,最后将其绘制为 sf 对象。
请使用 remotes::install_github(coolbutuseless/ggpattern)
将您的 {ggpattern}
和 {gridpattern}
软件包更新到最新(开发)版本。 geom_sf_pattern()
模式 clipping/masking 存在一些问题,已于上周(2022 年 1 月 16 日至 20 日)修复。理论上它现在应该可以工作了。您不需要使用不同的 OS.
如果它仍然不起作用,请尝试一些解决方法:
使用
options(ggpattern_use_R4.1_features = FALSE)
明确关闭(或打开)R 4.1 功能。通常这不应该明确需要,因为{gridpattern}
可以猜测活动图形设备中的 R 4.1 支持...使用不同的图形设备(例如
时自动刷新pdf()
或ragg::agg_png()
而不是默认的交互式 windows 设备来保存图像。使用 pdf/png 查看器,当图像文件为 over-written.