Выражения из data.frame в легенду ggplot2 - PullRequest
1 голос
/ 09 июня 2011

Я хотел бы добавить выражение к записи легенды без непосредственного ввода легенды (поскольку я перебираю переменные). По сути, я хотел бы это:

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 <= 74 была 0-74, но у меня возникают проблемы при смешивании выражений и не выражений.) </p>

Я уверен, что это какая-то настройка, но все, что я пробовал, не сработало. Есть идеи?

1 Ответ

2 голосов
/ 09 июня 2011

Я думаю, что вы можете сделать это в вашем цикле, используя parse(text=), чтобы преобразовать строку в соответствующее выражение.Таким образом, вы можете установить scale_colour_manual с соответствующими метками, взяв строки символов из вашей переменной f и передавая их примерно так (может потребоваться некоторая подстройка):

scale_colour_manual(...,labels=c(parse(text=lab1),parse(text=lab2)))

Хотя синтаксический анализ не выполняетсяt ">=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=""))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...