ggsave scale不缩放文本大小

时间:2019-12-06 18:18:29

标签: r ggplot2

每当我使用ggsave和scale保存图时,图的大小都会增加,但文本的大小不会增加。

ggplot(economics, aes(date, unemploy)) + 
  geom_line(color="#2fb2ab") +
  theme_ipsum() +
  theme(
    text = element_text(family="Georgia"),
    axis.title.x = element_text(hjust=0.5, size=13, family="Georgia"),
    axis.title.y = element_text(hjust=0.5, size=13, family="Georgia"),
    panel.border = element_rect(colour = "black", fill=NA))+
  ylab("Unemployment") +
  xlab("Date")

ggsave("sample_graph.png", scale = 2)
ggsave("sample_graph2.png", scale = 3)

这是图1:

graph 1, scale = 2

这是图2:

graph 2, scale = 3

如何获取它来缩放图形大小和字体?我不想手动设置高度和宽度。

2 个答案:

答案 0 :(得分:3)

scale自变量og ggsave似乎仅影响绘图区域,而不影响字体。要像在代码中那样修改字体大小,必须在axis.title.xaxis.title.y中传递参数。

规避此问题的一种方法是设置比例因子,并在theme函数和ggsave中使用它。这样的事情应该可以解决问题:

library(ggplot2)
scale_factor = 3
ggplot(economics, aes(date, unemploy)) + 
  geom_line(color="#2fb2ab") +
  theme(
    text = element_text(family="Georgia"),
    axis.title.x = element_text(hjust=0.5, size= scale_factor * 13, family="Georgia"),
    axis.title.y = element_text(hjust=0.5, size= scale_factor * 13, family="Georgia"),
    panel.border = element_rect(colour = "black", fill=NA))+
  ylab("Unemployment") +
  xlab("Date")

ggsave("sample_graph.png", scale = scale_factor)

让我知道您是否正在寻找

答案 1 :(得分:3)

两个文本的大小相同。查看旧的讨论:R, how to set the size of ggsave exactly

第一个ggsave创建一个14 x 7.54的图像。第二个创建20.9 x 11.3图像。在Photos之类的查看器中打开它们时,您正在以扭曲的物理尺寸查看它们。如果以powerpoint之类的方式打开它们,以正确的物理尺寸查看它们,则会看到字体是相同的。

请参见下图进行并排比较: sidebyside