从data.frame到ggplot2图例的表达式

从data.frame到ggplot2图例的表达式,r,plot,ggplot2,R,Plot,Ggplot2,我想在图例条目中添加一个表达式,而不直接输入图例(因为我在变量上循环)。基本上,我希望: d <- data.frame(x=1:10,y=1:10,f=rep(c("0–74",">=75"),each=5)) qplot(x,y,data=d,color=f) d我认为您可以在循环中使用parse(text=)将字符串转换为适当的表达式。因此,您可以通过从f变量中提取字符串并以如下方式传递它们(可能需要进行一些调整),使用适当的标签设置scale\u color\u ma

我想在图例条目中添加一个表达式,而不直接输入图例(因为我在变量上循环)。基本上,我希望:

d <- data.frame(x=1:10,y=1:10,f=rep(c("0–74",">=75"),each=5))
qplot(x,y,data=d,color=f)   

d我认为您可以在循环中使用
parse(text=)
将字符串转换为适当的表达式。因此,您可以通过从f变量中提取字符串并以如下方式传递它们(可能需要进行一些调整),使用适当的标签设置
scale\u color\u manual

虽然parse不喜欢
“>=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=""))))

这是ggplot2还是ggplot问题?谢谢!这对于我给出的案例很有效。然而,由于某些原因,它在更大更复杂的绘图(实际上是地图)中不起作用,我希望在其中使用它(我将不告诉您细节)。我只是在lappy(X,FUN,…)中不断得到错误
错误:'pairlist'对象不能强制输入'double'
。我想我得找个时间解决这个问题。。。
scale_colour_manual(...,labels=c(parse(text=lab1),parse(text=lab2)))
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=""))))