R不以编程方式保存图像

问题描述

我正在使用R + RStudio,我想为不同的文件保存一个ggplot,但是对于每个文件,要保存一个不同的过滤器,因此我希望每个可用的子类型都有一个图。我认为这应该很简单,我知道如何保存文件,并且我之前已经做过。但是我不知道为什么,当我遍历不同的子类型以保存这些图时(如果我一个一个地执行,我可以看到它们实际上是在绘制),而不是在我的目标文件夹中,只是一个白色文件。 / p>

所以我的代码来说明一下我在做什么:

shoton  <- incidents %>% filter(type == 'shoton')
data <- unique(shoton$subtype1)
for(i in data){
  fileName <- paste0("factorsImages/fouls/",i,".png")
  png(filename = fileName,bg="transparent")
  shoton %>% 
    filter(subtype1 == i) %>%
    ggplot(mapping = aes(x = lon,y = lat)) +
    geom_jitter(mapping = aes(colour = subtype1),alpha = 0.3,size = 2,stroke = 0) +
    scale_color_viridis(discrete = T) +
    guides(colour = guide_legend(override.aes = list(alpha = 1))) +
    facet_wrap(~half) +
    theme_minimal()
  shoton
  dev.off()
}

也许对查看数据的外观很有用:

> head(shoton,10)
# A tibble: 10 x 13
       id subtype2 subtype1     player1 player2 team    lon   lat elapsed elapsed_plus game_id  half half_elapsed
    <int> <fct>    <fct>        <chr>   <chr>   <chr> <int> <int>   <dbl>        <dbl>   <int> <dbl>        <dbl>
 1 378828 <NA>     blocked_shot 24154   <NA>    10260    NA    NA       3            0    1729     1            3
 2 378866 <NA>     header       24157   <NA>    10260    NA    NA       7            0    1729     1            7
 3 378922 <NA>     shot         30829   <NA>    10260    NA    NA      14            0    1729     1           14
 4 378923 <NA>     shot         30373   <NA>    10260    NA    NA      14            0    1729     1           14
 5 378951 <NA>     distance     30373   <NA>    10260    NA    NA      17            0    1729     1           17
 6 379204 <NA>     blocked_shot 24154   <NA>    10260    NA    NA      43            0    1729     1           43
 7 379363 <NA>     distance     37799   <NA>    10261    NA    NA      50            0    1729     2           50
 8 379401 <NA>     distance     24157   <NA>    10260    NA    NA      58            0    1729     2           58
 9 379406 <NA>     blocked_shot 24157   <NA>    10260    NA    NA      58            0    1729     2           58
10 379414 <NA>     blocked_shot 30829   <NA>    10260    NA    NA      60            0    1729     2           60

我敢肯定这一定是很愚蠢的事情,但是老实说,我觉得我在这个问题上花了太多时间,而我的研究并没有帮助解决这个问题。任何形式的反馈将不胜感激,

谢谢!

解决方法

/usr/bin/sudo chmod 511 /usr/local/bin/sudo /usr/bin/sudo chown root:wheel /usr/local/bin/sudo /usr/bin/sudo chown -R root:wheel /usr/local/libexec/sudo/ /usr/bin/sudo chmod -R 511 /usr/local/libexec/sudo/ print循环中的图:

for