ggplot to png - 自动拉伸图像

ggplot to png - automatically stretching image

我正在生成 ggplot plot 并将其保存为 .png 图像。虽然在 Rstudio 中生成的绘图根据 y 轴的值进行拉伸,但当我将其另存为 .png.

时,我得到了一个看起来像正方形的图像

如何自动得到.png形式的最佳拉伸图片?

# Function to store ggplot plot object as .png image file
savePlot <- function(myPlot, filename) {
  png(filename)
  print(myPlot)
  dev.off()
}

# ggplot object
normalized_bar_plot = ggplot(dat, aes(factor(temp), norm, fill = type)) + 
  geom_bar(stat="identity", position = "dodge") + ylab("Normalized count")+xlab(features[i])+
  scale_fill_brewer(palette = "Set1")

filename = paste0("image_", features[i], ".png")
savePlot(normalized_bar_plot, filename)

为了保存 ggplot 个数字,我会使用 ggsave。默认情况下,这会选择绘图设备的大小。因此,如果您在屏幕上的绘图设备中正确设置宽高比,这将转换为保存的图像文件。此外,它支持通过 widthheightdpi 输入参数设置图像的宽度、高度和 dpi。

例如:

ggplot(dat, aes(factor(temp), norm, fill = type)) + 
  geom_bar(stat="identity", position = "dodge") + ylab("Normalized count")+xlab(features[i])+
  scale_fill_brewer(palette = "Set1")
# ggsave will save the last generated image, it will also pick up which file format
# to use from the file extension (e.g. png).
ggsave('~/saved_image.png', width = 16, height = 9, dpi = 100)