【问题标题】:Adding greek symbols to legend ggplot (more than one)将希腊符号添加到图例 ggplot(不止一个)
【发布时间】:2020-10-29 13:25:45
【问题描述】:

This 线程将我带到了这个不错的wikiggplot 中添加希腊符号。下面的代码在图例中为 alpha 和 beta 提供了一个值。如果我想为图例中的同一数据点添加多个希腊符号,我该怎么办?例如“alpha =1, gamma = 2”?

d <- data.frame(x=1:10,y=1:10,f=rep(c("alpha","beta"),each=5), stringsAsFactors=FALSE)

value <- 3.1415
my.labs <- list(bquote(alpha==.(value)),bquote(beta==.(value)))

qplot(x,y,data=d,colour=f) +
  scale_colour_manual(values=1:2,breaks=c("alpha","beta"),
                      labels=my.labs)

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    您可以使用 unicode 转义直接将它们作为字符串传递

    my.labs <- c("\u03b1 = 1, \u03b3 = 1", paste("\u03b2 =", value))
    
    qplot(x,y,data=d,colour=f) +
      scale_colour_manual(values=1:2, breaks=c("alpha","beta"),
                          labels=my.labs)
    

    【讨论】:

    • 太棒了!但是,您如何知道符号的字符串代码?
    • @tomka Google "unicode alpha" 并在 \u 前面使用十六进制 - 希腊字母都是连续的
    【解决方案2】:

    也许是这样。您可以巧妙地使用paste() 连接元素并使用expression() 函数添加,

    library(ggplot2)
    #Code
    d <- data.frame(x=1:10,y=1:10,f=rep(c("alpha","beta"),each=5), stringsAsFactors=FALSE)
    value <- 3.1415
    my.labs <- c(expression(paste(alpha==1,',',~gamma==2)),expression(beta))
    #Plot
    qplot(x,y,data=d,colour=f) +
      scale_colour_manual(values=1:2,breaks=c("alpha","beta"),
                          labels=my.labs)
    

    输出:

    【讨论】:

    • 有趣 (+1) 但我认为缺少逗号或分隔符
    猜你喜欢
    • 1970-01-01
    • 2015-02-25
    • 2019-02-06
    • 2013-12-25
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多