我想在不直接输入图例的情况下向图例条目添加表达式(因为我循环变量)。基本上我想这样:
d <- data.frame(x=1:10,y=1:10,f=rep(c("0–74",">=75"),each=5))
qplot(x,y,data=d,color=f)
输出这样做的方式:
qplot(x,y,data=d,color=f) +
scale_colour_manual(values=1:2,breaks=c("0–74",">=75"),
labels=c(expression(0<=75), expression("">=75)))
(但实际上我希望第一个条目0&lt; = 74为0-74,但我在混合表达式和非表达式时遇到了麻烦。)
我确定这是某种设置,但我尝试过的一切都没有用。有什么想法吗?
答案 0 :(得分:2)
我认为你可以在循环中使用parse(text=)
将字符串转换为适当的表达式。因此,您可以通过从f变量中获取字符串并使用类似的方式传递它们来设置scale_colour_manual
适当的标签(可能需要进行一些调整):
scale_colour_manual(...,labels=c(parse(text=lab1),parse(text=lab2)))
虽然解析不喜欢">=75"
所以你可能想要"''>=75"
之类的内容。
例如:
qplot(x,y,data=d,color=f) +
scale_colour_manual(values=1:2,breaks=c("0–74",">=75"),
labels=c(parse(text="0-74"), parse(text=paste("''",">=75",sep=""))))