【问题标题】:How to change font size for all text in a ggplot object relative to current value?如何更改ggplot对象中所有文本相对于当前值的字体大小?
【发布时间】:2020-01-25 08:37:52
【问题描述】:

在使用ggplot2创建绘图时,经常会遇到以下情况:

我已经使用element_text(size=<value>) 调整了所有文本,所以它在我的报告中看起来不错,但要在其他上下文中使用它,我需要更新所有文本的大小(使其更大或更小),以保持情节可读。

有没有一种方法可以更新所有文本元素的字体大小,而无需显式指定元素,即不是

theme_update(
       axis.text=element_text(size=12),
       axis.title=element_text(size=14),
       ...
)

代表

library(ggplot2)
p <- ggplot(iris) +
  aes(Sepal.Width, Sepal.Length, color = Species)+
  geom_point()+
  ggtitle(
    "All text",
    "should be 50% larger"
  ) +
  theme_bw()
p

reprex package (v0.3.0) 于 2019 年 9 月 25 日创建

【问题讨论】:

    标签: r ggplot2 tidyverse


    【解决方案1】:

    ggplot对象通过网格图形显示,网格图形继承父视口的cex设置作为乘数,

    print(p, vp=grid::viewport(gp=grid::gpar(cex=2)))
    

    或(仅影响主题元素,但不会影响例如 geom_text 图层),

    p + theme(text=element_text(size=24))
    

    【讨论】:

    • 您能否详细说明答案中的代码?我可以看到 cex 完成了工作,但使用 printvp 参数似乎有点神秘,至少对我而言。
    • 第二种方法也行不通,如果单个元素的字体大小之前是通过向绘图添加主题来指定的。
    猜你喜欢
    • 2020-12-06
    • 2019-06-11
    • 1970-01-01
    • 2023-03-09
    • 2023-01-16
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多