【问题标题】:Subscripts (or other math formula) in ggplot2 legend factor labelsggplot2 图例因子标签中的下标(或其他数学公式)
【发布时间】:2011-12-20 13:43:06
【问题描述】:

我尝试使用 scale_colour_discrete 为我的 ggplot2 geom_point 颜色图例添加下标。弹出类似问题here

p <- ggplot(myData, aes(myFeature1,myFeature2))
p <- p + geom_point(aes(colour = myFeature3)) + facet_grid(n ~ cond)
p <- p + scale_colour_discrete(breaks = levels(myData$myFeature3), labels = c(expression(myFeature3[1]),expression(myFeature3[2]))

但是,会出现以下错误: FUN(X[[1L]], ...) 中的错误: 无法将类型“符号”强制转换为“双”类型的向量

如果没有labels 定义expression,则不会发生此错误。它确实发生在expression 中的任何内容。

关于这个主题有什么想法吗? scale_colour_discrete 不能与 expression 一起使用吗?还有另一种方法可以将下标添加到这些图例因素名称中吗?

非常感谢!

【问题讨论】:

    标签: r ggplot2 expression legend subscript


    【解决方案1】:

    没有您的数据就无法复制。尝试使用 help(scale_colour_discrete) 中描述的“钻石”数据类似的东西:

    d + scale_colour_discrete(breaks=levels(diamonds$clarity),labels=rep(expression(a^2),8))
    

    有效,用数学符号中的 a-squared 标记所有级别。

    d + scale_colour_discrete(breaks=levels(diamonds$clarity),labels=rep(expression(clarity[1]),8))
    

    有效,在所有级别都用清晰的下标 1 标记。

    【讨论】:

      【解决方案2】:

      这是一个使用 diamonds 数据集的示例,其中钻石切工的标签被替换为 Cut_1、...、Cut_5。

      ggplot(diamonds, aes(x = carat, y = price)) + 
        geom_point(aes(colour = cut)) + 
        facet_grid(color ~ clarity) + 
        scale_colour_discrete(breaks = levels(diamonds$cut), 
                              labels = c(expression(Cut[1]),
                                         expression(Cut[2]),
                                         expression(Cut[3]),
                                         expression(Cut[4]),
                                         expression(Cut[5])))
      

      如果这不能帮助您找到问题的解决方案,您能否提供一个可重现的示例供其他人解决问题?

      【讨论】:

        猜你喜欢
        • 2016-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多