Entering edit mode
Paul Murrell
▴
60
@paul-murrell-1906
Last seen 10.6 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/