r - 在 ggsave 中设置分辨率:如何保存具有设置分辨率、高度和宽度的 png?
问题描述
我有一个代码,它产生了几个条形图lapply
。在这段代码中,我想为我的 pngs 自动指定单位、宽度、高度和分辨率ggsave
(我需要调整我制作的图片的比例,因为几周前我已经制作了数百张 emf 图片并得出结论: png 是更好的格式)。
我的问题与我以前的一篇文章有关(R:使用 ggplot2 和 lapply 生成几个条形图:如何根据列表插入字幕?),但这里的这篇文章更多地是关于 pngs。
如果我不使用 lapply 并按条形图制作条形图,则效果很好:首先我设置我的工作目录,然后指定我的 png,然后再次关闭设备:
png(filename="190709_bp_DA_MQ.png",units = "in",width=10, height=7,res = 120)
但是使用lapply
and ggplot
( ggsave
and paste
) 它不再起作用了。我收到以下错误
grDevices::png(..., res = dpi, units = "in") 中的错误:形式参数“res”与多个实际参数匹配
###producing some random data
df <- data.frame(
value = floor(runif(20,min=0,max=30)),
Intervall = paste("Intervall",rep(1:10,2)),
type = rep(c("a", "b"))
)
list1 <- split(df, df$type)
###producing plots with lapply and ggplot
path <- ("S:/")
plots <- lapply(names(list1), function(nm) {
ggplot(list1[[nm]], aes(Intervall, value)) +
geom_bar(stat = "identity") +
labs(title = "Intervalle", subtitle = nm)
})
names(plots) <- names(list1)
plots
#saving as pngs
lapply(names(plots), function(nm) {
ggsave(filename = paste(path, nm, ".png", sep = ""),
width = 10, height = 7, plot = plots[[nm]])
})
#If I only specify width and height, the code works.
#But: I want to have the units in Inches and also add the resolution. if I add #units and resolution, the code doesnt work anymore.
lapply(names(plots), function(nm) {
ggsave(filename = paste(path,nm, ".png", sep = ""),
units = "in", width = 10, height = 7, res = 120, plot = plots[[nm]])
})
解决方案
推荐阅读
- python - Python 中的 Parket 票务系统
- java - 无法将凌乱的 spring-security-xml 转换为基于 Java 的配置
- sql - 在 SQL 中将日期 (yyyy-mm-dd) 转换为 MM-YYYY
- flutter - Flutter:如何只用它的一个孩子覆盖整个 Column
- python - for循环问题的两种解决方案之间的区别?
- javascript - 开玩笑忽略根目录中的 __mocks__ 目录
- r - 基于一列中的两个值对数据框进行子集
- python - 调用对象的存储方法
- php - 将 CakePHP 与 Wordpress 集成
- swift - 如何使用 swift 在单个消息电报机器人中发送照片、标题和内联按钮?