【问题标题】:Adding equations with Greek letters using geom_text() in ggplot [duplicate]在ggplot中使用geom_text()添加带有希腊字母的方程[重复]
【发布时间】:2021-02-13 10:00:08
【问题描述】:

我有一个小数据框,我要在其中绘制并使用希腊字母添加一个方程

library(tidyverse)
Beta  <- c( 1.53,  1.36,  1.24, 1.17,  1.06, 0.92, 0.84, 0.76, 0.63, 0.48)
Sigma <- c( 0.49,  0.43,  0.39, 0.37,  0.33, 0.29, 0.27, 0.24, 0.20, 0.17)
df    <- data.frame(Beta, Sigma)

然后,我使用以下基于Adding equations to ggplots in R 建模的代码绘制 Sigma 与 Beta:

ggplot(df, aes(x = Beta, y = Sigma)) +
  geom_point() + 
  geom_smooth(method='lm', formula = y ~ x, se = FALSE, size = 0.6, color = "gray20") +
  ylab("Standard Deviation") +  
  geom_text(aes(1.0, 0.2, label=(paste(expression("sigma = 0.33 beta "*"")))),parse = TRUE) 

这行得通,并在我的情节上给了我文本字符串“sigma = 0.33 beta”,但我真正想要的是希腊字母 mu 和 sigma,而不是单词 mu 和 sigma。将表达式更改为 "$\sigma = 0.33 \beta "*""$ (或它的变体)只会给我一个错误: Error: '\s' is an unrecognized escape in character string starting ""$\s" 使用 geom_text() 在绘图中添加希腊字母(或一般符号)的正确语法是什么?我试过?plotmath,似乎暗示alphabeta 将显示为希腊符号,但它们显然不会。

提前致谢

托马斯·飞利浦

【问题讨论】:

  • 不明白beta后面的星号是什么,是上标吗?

标签: r ggplot2 geom-text


【解决方案1】:

当绘图坐标或任何其他美学元素不依赖于数据时,不需要aes()。下面的geom_text 就是这种情况,它的参数都是常量。并且也不需要解析要绘制为文本标签的表达式。

ggplot(df, aes(x = Beta, y = Sigma)) +
  geom_point() + 
  geom_smooth(method='lm', formula = y ~ x, se = FALSE, size = 0.6, color = "gray20") +
  ylab("Standard Deviation") +  
  geom_text(x = 1.0, y = 0.2, 
            label = expression(sigma == "0.33" ~ beta^"*"))

【讨论】:

  • 整洁 - 感谢磨坊。我有一个后续问题:您如何确定 a) 您需要两个等号,而不是一个,即 == 而不是 =,b) 必须引用 0.33,以及 c) 在 beta 之前需要一个 ~?我搜索了相当多的 StackOverflow,以及 geom_text() 的帮助,但在任何地方都没有看到。
  • @ThomasPhilips plotmath 帮助页面回答 a); b) 练习? c) 例如this SO post.
猜你喜欢
  • 1970-01-01
  • 2020-07-15
  • 1970-01-01
  • 2021-10-31
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多