首页 > 解决方案 > R ggplot - 使用 ggsave 设置图例/轴大小

问题描述

所以我有这样的df

df <- read.table(text="
   amount      nr      date
   50          1       2017-01-01
   150         1       2017-01-03
   1500        2       2017-01-04
   1450        2       2017-01-04
   1250        2       2017-01-04
   950         1       2017-02-05
   120         3       2017-02-06
   300         3       2017-04-06
", header=TRUE)

我从这个 df 创建了一个情节

ggplot(test, aes(x = date, y = amount, fill = nr, group = 1)) +
  geom_bar(stat = "identity")

一切正常,直到我用下面的代码保存这个图

ggsave(filename="D:/Documents/units_plot.png", width = 4, height = 2)

我不知道应该如何正确设置图像尺寸(应该是 1000x500px)以及如何设置图例的文本大小、轴文本大小。通常我通过 theme() 选项 i ggplot 来执行此操作,但由于某种原因,导出文件中的图例是如此巨大。

标签: rggplot2

解决方案


ggplot 基于图像打印后的物理尺寸计算其尺寸。要获得特定的像素大小,您需要为 DPI(每英寸的像素数)选择一个好的值,并使用它来计算大小:

ggplot(test, aes(x = date, y = amount, fill = nr, group = 1)) +
    geom_bar(stat = "identity") +
    theme_grey(base_size = 12)

dpi = 96
ggsave(filename="units_plot.png", width = 1000 / dpi, height = 500 / dpi,
       dpi = dpi)

如果您选择不同的 DPI 值,则必须测试哪些字体大小适用于该 DPI,而不会使标签太大或太小 - 我认为没有任何办法解决这个问题。


推荐阅读