Rgraphviz and node label placement
0
0
Entering edit mode
Paul Murrell ▴ 60
@paul-murrell-1906
Last seen 9.8 years ago
Hi There is a still-early-days package called 'gridGraphviz' (version 0.1) which you can use to draw the graph using the 'grid' package. This makes it possible to modify the drawn graph after-the-fact. For example, after running your code, you can do ... library(gridGraphviz) nodeShape <- rep("box", length(nodes(testG))) names(nodeShape) <- nodes(testG) rag <- agopen(testG, "", nodeAttrs=list(shape=nodeShape)) grid.newpage() grid.graph(rag) # Get label names grobs <- grid.ls() labelIndex <- grep("label", grobs$name) labelPaths <- grobs$gPath[labelIndex] for (i in 1:length(labelIndex)) { labelPath <- gPath(labelPaths[i], "label") oldY <- grid.get(labelPath)$y grid.edit(labelPath, label=theTerms[i], y=oldY - unit(5, "mm"), redraw=FALSE) } grid.refresh() The important bit being the adjustment of the original 'y' value for node labels to be 5mm lower. This is not EXACTLY like your original, but maybe it is close enough to do what you need (?) Paul On 31/03/12 01:08, Iain Gallagher wrote: > Hello List > > Is is possible to place node labels below nodes rather than within them in Rgraphiviz? In the graph below I would like to plot labels below the nodes because many labels are too long to fit within the nodes. > > > library(GO.db) > library(GOstats) > library(Rgraphviz) > > GOlist<- c('GO:0031994', 'GO:0043559', 'GO:0048186', 'GO:0048185', 'GO:0016362', 'GO:0070411', 'GO:0019838') # get interesting GOMF cats > > # plot the sig GOMF and ancestors > testG<- GOGraph(GOlist, GOMFPARENTS) > > # Put root node on the top, transpose adjacency matrix > testG<- as(t(as(testG, 'matrix')), 'graphNEL') > > #plot the graph (coloured to show sig) with ancestors > > # 1. get terms for labels > theTerms = as.character(sapply(mget(nodes(testG), GOTERM), Term)) #get the terms > names(theTerms) = nodes(testG) #name the terms > > # 2. set up graph parameters > graph.par(list(nodes=list(label=theTerms, shape='rect', fontsize=36.0), edges=list(lwd=1))) > > > # 3. set up sig node pars > sigCol<- rep('lightgrey', length(GOlist)) # set a colour for the sigCats > sigShape<- rep('ellipse', length(GOlist)) # set a shape for the sigCats > sizeList<- rep(42, length(GOlist)) # set a character size for the sigCats > > names(sigCol)<- names(sigShape)<- names(sizeList)<- GOlist # make named lists > > #info for the nodes > width<- rep(14, length(nodes(testG)))#define a custom width > height<- rep(6, length(nodes(testG)))#define a custom height > names(width) = names(height) = nodes(testG)#make named vectors > > nodeAttrs<- list(label=theTerms, width=width, height=height)#use width& height for nodes and terms for labels > > nodeRenderInfo(testG)<- list(label=theTerms, fill=sigCol, shape=sigShape, width=width, height=height, fontsize=sizeList) # put together in a list of lists > > # render the plot > testLayout<- layoutGraph(testG, layoutType='dot') > renderGraph(testLayout) > > > best& thanks > > iain > >> sessionInfo() > R version 2.14.2 (2012-02-29) > Platform: x86_64-pc-linux-gnu (64-bit) > > locale: > [1] LC_CTYPE=en_GB.utf8 LC_NUMERIC=C > [3] LC_TIME=en_GB.utf8 LC_COLLATE=en_GB.utf8 > [5] LC_MONETARY=en_GB.utf8 LC_MESSAGES=en_GB.utf8 > [7] LC_PAPER=C LC_NAME=C > [9] LC_ADDRESS=C LC_TELEPHONE=C > [11] LC_MEASUREMENT=en_GB.utf8 LC_IDENTIFICATION=C > > attached base packages: > [1] grid stats graphics grDevices utils datasets methods > [8] base > > other attached packages: > [1] Rgraphviz_1.32.0 GOstats_2.20.0 graph_1.32.0 > [4] Category_2.20.0 GO.db_2.6.1 RSQLite_0.11.1 > [7] DBI_0.2-5 AnnotationDbi_1.16.13 Biobase_2.14.0 > > loaded via a namespace (and not attached): > [1] annotate_1.32.1 genefilter_1.36.0 GSEABase_1.16.0 IRanges_1.12.6 > [5] RBGL_1.30.1 splines_2.14.2 survival_2.36-12 tools_2.14.2 > [9] XML_3.9-4 xtable_1.7-0 >> > [[alternative HTML version deleted]] > > > > > _______________________________________________ > Bioconductor mailing list > Bioconductor at r-project.org > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor -- Dr Paul Murrell Department of Statistics The University of Auckland Private Bag 92019 Auckland New Zealand 64 9 3737599 x85392 paul at stat.auckland.ac.nz http://www.stat.auckland.ac.nz/~paul/
GO graph GO graph • 988 views
ADD COMMENT

Login before adding your answer.

Traffic: 918 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