仅增加表达式上标文本的字体大小

时间:2018-07-21 05:18:28

标签: r ggplot2

我试图在R中使用ggplot2显示拟合的回归曲线。我正在使用 ggplot2 annotate 在图中显示最佳拟合模型的方程式。我可以通过增加 annotate size 参数的值来增加整体字体大小,但是我只想增加上标文本的字体大小,以便于阅读。 。这是一个简单的可复制代码块。

eq.sage.eg.sf <- substitute(italic(Y) == frac(2.76,5.13)~e^(-frac(italic(x)-12.09, 5.113)~-e^(-frac(italic(x)-12.09, 5.13))) + 0.08*"," ~ Resid. ~ SE == 0.03)

eq.sage.eg.sf <- as.character(as.expression(eq.sage.eg.sf))

library(ggplot2)    
ggplot(x = seq(0, 150, 1), y = seq(0, 0.35, 0.1)) +
  annotate(geom = "text", x = 95, y = 0.28, label = eq.sage.eg.sf,
           parse = TRUE, size = 4.25) 

请看一下图中,我想增加红色圆圈内文本的字体大小。

enter image description here

1 个答案:

答案 0 :(得分:1)

让这些层硬编码。想法是将公式分为3部分,并使用不同的大小逐层传递给ggplot层,作为不同的元素:

one <-  as.character(as.expression(substitute("italic(Y) == frac(2.76,5.13)")))
two <-  as.character(as.expression(substitute(~e^(-frac(italic(x)-12.09, 5.113)~-e^(-frac(italic(x)-12.09, 5.13))))))
three <-  as.character(as.expression(substitute("+ 0.08* ~ Resid. ~ SE == 0.03")))


library(ggplot2)    
ggplot(x = seq(0, 150, 1), y = seq(0, 0.35, 0.1)) +
  annotate(geom = "text", x = 95, y = 0.28, label = one,
           parse = TRUE, size = 4.25) +
  annotate(geom = "text", x = 95.14, y = 0.31, label = two,
           parse = TRUE, size = 8.25) +
  annotate(geom = "text", x = 95.33, y = 0.28, label = three,
           parse = TRUE, size = 4.25) +
  scale_x_continuous(limits = c(94.9, 95.4)) +
  scale_y_continuous(limits = c(0.28))

enter image description here