如何在ggplot中添加带斜体和变量的复杂标签?

JPo*_*ock 5 expression r ggplot2 geom-text

我一直在使用阅读关于这一主题的贴子很多expression(),paste()bquote(),或某种组合.我想我已接近解决我的问题,但我无法到达那里.以下脚本生成标有"y = 1 + 2(x); r ^ 2 = 0.9"的图.我怎样才能将"y"和"x"斜体化,并将"r"和上标"r ^ 2"的斜体标记为斜体?如果我忽略了相关的早期帖子,抱歉,请指导我.

df <- data.frame(x=c(1:5), y=c(1:5))
a <- 1    
b <- 2
r2 <- 0.9
eq <- paste("y = ", a, " + ", b, "(x); r^2=", r2)
ggplot(data=df, aes(x=x, y=y))+
  geom_point(color="black")+
  geom_text(x=2, y=4,label=eq, parse=FALSE)
Run Code Online (Sandbox Code Playgroud)

jay*_*.sf 4

您可以使用annotate()它来直接粘贴到图中。

library(ggplot2)
ggplot(data=df, aes(x=x, y=y)) +
  geom_point(color="black") +
  annotate('text', 2.5, 4, 
           label=paste("italic(y)==", a, "+", b, 
                       "~italic(x)~';'~italic(r)^2==", r2), 
           parse=TRUE, 
           hjust=1, size=5)
Run Code Online (Sandbox Code Playgroud)

产量:

在此输入图像描述

数据:

df <- data.frame(x=c(1:5), y=c(1:5))
a <- 1
b <- 2
r2 <- 0.9
Run Code Online (Sandbox Code Playgroud)