如何在qplot()中使用TeX(r'()')添加LaTeX格式的图例标签?
你的代码存在两个核心问题导致LaTeX标签不生效:
- 你在
qplot中将variable变量映射到了color美学,但后续调用的是scale_fill_discrete修改填充属性的刻度,和实际映射的美学不匹配,修改自然不会作用到图例上。 require()函数单次仅支持加载一个R包,你原写法仅会成功加载reshape2,ggplot2和latex2exp都不会被正常载入。
修正后的可运行代码如下:
# 分开加载所需包 require(reshape2) require(ggplot2) require(latex2exp) mat = matrix(1, nrow = 5, ncol = 2) colnames(mat) = c("a","b") df <- data.frame(m = 1:5, mat) df.melted <- melt(df, id="m") q <- qplot(x=m, y=value, color=variable, data=df.melted, geom="line") # 改为修改color对应的离散刻度 q + scale_color_discrete(name="Title", breaks=c("a", "b"), labels=c(TeX(r'($\tau$)'),TeX(r'($\tau$)')))
运行上述代码即可正常渲染LaTeX格式的图例标签,无需调整TeX(r'()')的写法,只要保证刻度修改函数和你映射的美学类型对应即可。如果使用的是不支持原始字符串语法的旧版R,把TeX(r'($\tau$)')替换为TeX('$\\tau$')即可。
内容的提问来源于stack exchange,提问作者Aditya Ghosh
相关产品推荐
相关产品推荐

