Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.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 geom#u sf size参数不';当尺寸<;1._R_Dictionary_Ggplot2_Sf - Fatal编程技术网

R geom#u sf size参数不';当尺寸<;1.

R geom#u sf size参数不';当尺寸<;1.,r,dictionary,ggplot2,sf,R,Dictionary,Ggplot2,Sf,问题:我试图用sf包和ggplot2中的geom\U sf()创建美国各州/县的地图,但我无法在geom\U sf()中获得多边形边界线宽度的size参数,以便在大小%geom\sf(尺寸=0.5) 具体而言,州/县的边界线似乎与任意小的边界线具有相同的宽度(例如,size=0.05)一直到size=0.702。然后在size=0.702处似乎有一个奇怪的截止点,在该截止点上方,边界线突然变宽。然后从size=0.703到size=1之间,边界线似乎具有相同的宽度。对于size>1,边界线逐渐变

问题:我试图用sf包和ggplot2中的
geom\U sf()
创建美国各州/县的地图,但我无法在
geom\U sf()
中获得多边形边界线宽度的
size
参数,以便在
大小<1
时正确创建细线(例如
ggplot(sf\U obj)%>%geom\sf(尺寸=0.5)

具体而言,州/县的边界线似乎与任意小的边界线具有相同的宽度(例如,
size=0.05
)一直到
size=0.702
。然后在
size=0.702
处似乎有一个奇怪的截止点,在该截止点上方,边界线突然变宽。然后从
size=0.703
size=1
之间,边界线似乎具有相同的宽度。对于
size
>1,边界线逐渐变宽,正如所料

研究:正如Bob Rudis和Matt Strimas Mackey的地图代码所示,
geom_sf()
确实支持大小的逐渐变化。我的问题似乎与ggplot2的Github页面上标题为“geom_sf将小尺寸旋转到1”的问题相同,但问题已解决,我不确定是否/如何在我的机器上实施修复。还有另一个类似的问题(和),但Hadley建议本例中的问题可能是图形设备/查看器。我复制了我的问题(以及上面链接的两个Github问题)在RStudio和RGUI中,但我不确定如何测试/更改我的图形设备/查看器

版本信息:我使用的是ggplot2_3.0.0、sf_0.6.3、R版本3.5.1、RStudio版本1.1.456和Windows 10版本1803;这个问题也使用RGUI复制

Code:下面是一个reprex,它使用的是来自geom\u sf()的北卡罗来纳地图。如果您有任何帮助,我们将不胜感激。谢谢

suppressPackageStartupMessages(library(ggplot2))
suppressPackageStartupMessages(library(reprex))
suppressPackageStartupMessages(library(sf))

#################################################

# plot north carolina map
nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE)
ggplot(nc) + geom_sf(size = 0.05)

更新:正如Chris和Ibsett指出的,在使用
ggsave
后,边界线具有预期的宽度。谢谢


您是否使用了<代码> GGStave>代码>?我不能在我的机器上重现错误。我看到了同样的行为,但我想这确实取决于图形设备。例如,如果您尝试使用<代码> GGStave<代码>保存PDF。您将得到不同的结果。此外,考虑到“瘦”有多少限制。可以在监视器上渲染线条,并且监视器上线条的宽度不可避免地被“量化”(即,它可以是1像素或2像素,但不是1.5像素),因此我认为总会有一些“截止点”我投票结束这个问题,因为这是一个图形设备的问题,而不是一个编码问题,并且评论已经根据OP的更新提供了一个解决方案
nc %>% ggplot() + geom_sf(size = 0.702)
nc %>% ggplot() + geom_sf(size = 0.703)
# get version info
packageVersion("ggplot2")
#> [1] '3.0.0'
packageVersion("sf")
#> [1] '0.6.3'
version
#>                _                           
#> platform       x86_64-w64-mingw32          
#> arch           x86_64                      
#> os             mingw32                     
#> system         x86_64, mingw32             
#> status                                     
#> major          3                           
#> minor          5.1                         
#> year           2018                        
#> month          07                          
#> day            02                          
#> svn rev        74947                       
#> language       R                           
#> version.string R version 3.5.1 (2018-07-02)
#> nickname       Feather Spray