r - 如何向ggplot添加带有斜体的复杂标签和变量?

标签 r ggplot2 expression geom-text

我已经使用 expression() 阅读了许多关于此主题的帖子。 , paste() , 和 bquote() ,或某种组合。我想我已经接近解决我的问题了,但我就是无法到达那里。以下脚本生成标有“y = 1 + 2(x); r^2= 0.9”的图。如何斜体“y”和“x”,斜体“r”和上标“r^2”的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)

最佳答案

您可以使用 substitute 的组合和 plotmath ( https://www.rdocumentation.org/packages/grDevices/versions/3.5.1/topics/plotmath ) 将文本斜体-

# setup
set.seed(123)
library(ggplot2)

# dataframe
df <- data.frame(x = c(1:5), y = c(1:5))

# label
eq <- substitute(
  expr =
    paste(
      italic("y"),
      " = ",
      a,
      " + ",
      b,
      "(",
      italic("x"),
      "); ",
      italic("r") ^ 2,
      " = ",
      r2
    ),
  env = base::list(a = 1,
                   b = 2,
                   r2 = 0.9)
)

# plot
ggplot(data = df, aes(x = x, y = y)) +
  geom_point(color = "black") +
  labs(subtitle = eq)



创建于 2018-12-04 由 reprex package (v0.2.1)

关于r - 如何向ggplot添加带有斜体的复杂标签和变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53620614/

相关文章:

r - 在 kableExtra() 中控制行高

r - timeDate 的 isHoliday 不适用于日期向量

r - 调整 key_glyph ggplot 生成的图例字形的高度和宽度

在用 OR 连接的 where 子句中使用动态谓词的 linq 查询

r - Shiny 的应用因错误而停止。如何处理此类错误

python - Spatstat:给定二维点列表,如何将它们连接到多边形中,并进一步使其成为研究区域?

r - ggplot2 箱线图的两种不同颜色/图案方案

r - 有没有办法在 ggplot2 中手动设置水平箱线图的高度? (垂直闪避)

r - R 中长表达式的简写名称

c# - 动态生成属性表达式和空参数