【发布时间】:2017-12-11 15:10:48
【问题描述】:
我正在用 ggplot2 绘制一些结果。数据以如下结构的数据框组织:
category comparison value
1 A deltaXT/FT 6807
2 B deltaXT/FT 11894
3 C deltaXT/FT 1215
4 D deltaXT/FT 42862
5 E deltaXT/FT 34313
...
共有 4 个比较,每个都细分为 A-E 类,在同一个数据框中(图看起来像 this)。 我的目标是将“deltaXT/FT”替换为“ΔXT/FT”,使用希腊符号表示 Delta。
在图中,我使用“比较”列来定义条形的颜色,如下所示:
ggplot(data=vars, aes(x=category, y=value, fill=comparison)) +
...
scale_fill_manual(values=c("deltaXT/FT"="#6FA9BC"), ...)
基本上,当我在scale_fill_manual 和原始数据框中使用“deltaXT/FT”时,一切正常。如果我尝试使用 expression(Delta * "XT/FT")="#6FA9BC", ...) 我会收到此错误:
Error: unexpected '=' in:
...
scale_fill_manual(values=c(expression(Delta * "XT/FT"))="
问题似乎与scale_fill_manual() 有关:expression() 不能用作其中的键。我在 StackOverflow 中阅读了其他线程,建议人们使用 bquote(expression()=value),但使用它时错误没有改变。
关于如何解决这个问题并在图例中有一个漂亮的 ΔXT/FT 名称有什么建议吗?
编辑:将 Δ 字符复制粘贴到需要工作的 Rscript 中,但我更感兴趣的是 expression() 在一般情况下是否可以用作键。
【问题讨论】:
标签: r ggplot2 expression scale symbols