two-line labels in GO graphs
0
0
Entering edit mode
@brian-dpeyserphd-2881
Last seen 9.6 years ago
Robert Castelo <robert.castelo at="" ...=""> writes: <snip> > the newline character '\n' i was giving to the separator 'sep' parameter > in the paste function should be written as '\\\n'. doing it this way my > former example works: > > library(GOstats) > library(Rgraphviz) > > goterms <- eapply(GOTERM,Term) > g <- GOGraph("GO:0016265",GOBPPARENTS) > g <- removeNode("all",g) > mt <- match(nodes(g),names(goterms)) > nodattr <- makeNodeAttrs(g,label=paste(nodes(g),goterms[mt],sep="\\\n"), > shape="ellipse",fillcolor="#f2f2f2", > fixedsize=FALSE) > plot(g,nodeAttrs=nodattr) > > ... and no, writing '\\n' doesn't work. > <snip> Thankyouthankyouthankyouthankyouthankyou! Spent about 4 hours trying to get multi-line labels, trying from one to four backslashes. Finally I searched the help archive and found your solution. In my case, I wanted to split up long lines, so I was using gsub(): tmpGraphAttrs$nodeAttrs$label <- gsub("([[:print:]]{10})[[:space:]]", "\\1\\\\\n", tmpGraphAttrs$nodeAttrs$label) In that case, I had to use _five_ backslashes to get what I was after! (Escape the first backslash, escape the second backslash, then \n.) --which results in something like this: tmpGraphAttrs$nodeAttrs$label[1] GO:0009605 "response to\\\nexternal stimulus" So the node label string itself must have a triple-backslashed 'n' for a functional newline, which requires even more backslashing in (g)sub. I had been trying to get either '\n' or '\\n' in the string, but hadn't realized that I need '\\\n' for it to work. Thanks again! -Brian Peyser news at at@bpeyser.dot.fastmail.dot.net (use your biological supercomputer to fix that before replying)
• 722 views
ADD COMMENT

Login before adding your answer.

Traffic: 842 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6