r - R没有以编程方式保存图像
问题描述
我正在使用 R+RStudio,我想为不同的文件保存一个 ggplot,但对于每个文件,一个不同的过滤器,所以我想要一个可用的子类型的图。在我看来,这应该是一件非常容易的事情,我知道如何保存文件,而且我以前做过。但是我不知道为什么,当我遍历不同的子类型以保存这些图时(如果我一个一个地执行,我可以看到它们实际上是在绘制)不在我的目标文件夹中绘制,而只是一个白色文件。
所以我的代码显示我在做什么是这样的:
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
我很确定这一定很愚蠢,但老实说,我觉得我在这方面花费了太多时间,而我的研究并没有帮助解决这个问题。任何形式的反馈将不胜感激,
谢谢!
解决方案
print
for
循环中的情节:
library(dplyr)
library(ggplot2)
shoton <- incidents %>% filter(type == 'shoton')
data <- unique(shoton$subtype1)
for(i in data){
fileName <- paste0("factorsImages/fouls/",i, ".png")
png(filename = fileName, bg="transparent")
plot <- 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()
print(plot)
dev.off()
}
推荐阅读
- kubernetes - docker build nginx(ingress-nginx) 图像缓慢,如何加快速度
- ios - Swift 5 - 带有嵌套 JSON 的 JSONEncoder
- google-cloud-platform - 创建监护人地址时 Google Classroom Guardian 错误 403 的 GAM
- python - Python 抓取两个特定字符之间的子字符串
- reactjs - 如何在 NextJS 中使用动态导入来导入 SDK
- c++ - 我被困在这个区域。我用这个做什么节目?
- html - 和有什么区别
- javascript - 使用另一个组件的 API 响应的数据更新 React 元素
- c++ - 如何在(字符串和向量)的地图中放置..?
- amazon-web-services - 在 Cloudwatch 洞察力中解析日志