[BioC] Rgraphviz: Edge attributes not displaying

Jarrett Byrnes jebyrnes at ucdavis.edu
Mon Feb 5 16:51:20 CET 2007


I'm unclear as to what you mean by object g.  I'm assuming that you  
mean the Ragraph object generated by plot.  So, I did the following,  
after running the previous code from my first post:

 > g2<-plot(g1, nodeAttrs = nAttrs, edgeAttrs = eAttrs, attrs = attrs)
 >
 > g<-layoutGraph(g2)
 > AgEdge(g)
[[1]]
An edge between e and b with 1 BezierCurve objects:
257,706 223,656 121,506 87,456

[[2]]
An edge between f and b with 1 BezierCurve objects:
268,704 268,653 268,508 268,457

[[3]]
An edge between j and b with 1 BezierCurve objects:
272,704 293,618 382,247 407,141

[[4]]
An edge between j and e with 1 BezierCurve objects:
91,423 147,370 328,196 391,135

[[5]]
An edge between j and i with 1 BezierCurve objects:
539,421 517,367 451,205 425,140


Note, however, the following

 > g2$edgeAttrs
NULL




On Feb 5, 2007, at 2:13 AM, Li.Long at isb-sib.ch wrote:

>
> On my linux (R2.4 + graphviz 2.8/2.12), the edge labels DO show up...
>
> I don't have Mac on hand...  On the other hand, I don't see any  
> codes that
> are Mac-ed or Apple-ed in either Rgraphviz or graphviz.
>
> You can do (in R):  g1 <- layoutGraph(g), then look at g1's AgEdge  
> info to
> see if the label info are available.  If they are, then the problem is
> likely to be in rendering on Mac, other wise, it's more to do with
> retrieving label info.
>
> In case of the latter, I would try to change the following line (in
> doLayout.c) from
>         if ( edge->u.label != NULL )
> to
>         if ( agget(edge, "label") )
> just to see what happens...
>
> Li
>
>
>
>
>> As Jarrett says, this does not explain why the labels don't show up.
>>
>> Jarrett: could you do a
>> R> graphvizVersion()
>> for me. And are you on an Intel or PPC machine?
>>
>> I have spent some time in GDB and I am stuck for the moment.
>>
>> Notes for Li and me:
>>    R> library(Rgraphviz)
>>    gdb> break getEdgeLocs
>> run Jarrett's example
>>    gdb> break 124
>>    gdb> cont
>> (continue 5 times I think). Now we should be at the first edge with a
>> label, it has the attribute set correctly:
>>
>> (gdb) p agget(edge, "label")
>> $19 = 0x2113cac "Label 1"
>>
>> But the label is not reflected in the laidout structure, instead of a
>> textlabel we get a pointer to NULL:
>>
>> (gdb) p edge->u.label
>> $20 = (textlabel_t *) 0x0
>>
>> I am at a loss here, running Graphviz 2.12 on Mac PPC. Do you see the
>> same Li? Perhaps there have been some changes in how to read the
>> labels? Anyway, bedtime.
>>
>> Kasper
>>
>>
>>
>>
>>
>> On Feb 2, 2007, at 11:52 AM, Jarrett Byrnes wrote:
>>
>>> I see.  So, lty (aka style in the Rgraphviz documentataion - or
>>> should one use $lty) just doesn't work yet?  That still does not
>>> explain why labels are not showing up.
>>>
>>> On Feb 2, 2007, at 1:43 AM, Li.Long at isb-sib.ch wrote:
>>>
>>>> Hi,
>>>>
>>>> Some attributes affect layout, while others don't.  For edges,
>>>> "label"-attribute does affect layout, as documented by graphviz.
>>>> That's
>>>> why you see the edges are plotted differently after adding labels.
>>>>
>>>> The attribute for line type, "lty" in Ragraph-class, is not
>>>> retrieved from
>>>> graphviz at present, so it does not have any effect.
>>>>
>>>> Some newly added functions (in devel branch) allow you to see a
>>>> nicely
>>>> rendered graph by using "toFile" function to output the graph to a
>>>> file
>>>> (.svg, .ps, etc.).  This function invokes the renderer from
>>>> graphviz and
>>>> honors many more attributes nicely.
>>>>
>>>> The work is underway to render the graphs (laid out by graphviz)
>>>> better:
>>>> to honor more attributes, to honor them better.
>>>>
>>>> Li
>>>>
>>>>
>>>>> I can confirm the problem. I'll have a look at the source code
>>>>> today or
>>>> (more likely) tomorrow.
>>>>>
>>>>> Kasper
>>>>>
>>>>> On Feb 1, 2007, at 11:36 AM, Jarrett Byrnes wrote:
>>>>>
>>>>>> Hey, all.  I'm working on some methods with Rgraphviz to plot sem
>>>> objects (structrual equation models from the sem library) and have
>>>> run
>>>> into a problem.  It would seem that Rgraphviz is not dealing with
>>>> edge
>>>> properties correctly.  I've tried the following sample code:
>>>> set.seed(123)
>>>>>> V <- letters[1:10]
>>>>>> M <- 1:4
>>>>>> g1 <- randomGraph(V, M, 0.2)
>>>>>> nAttrs <- list()
>>>>>> eAttrs <- list()
>>>>>> z <- strsplit(packageDescription("Rgraphviz")$Description, " ")
>>>>>> [[1]] z
>>>> <- z[1:numNodes(g1)]
>>>>>> names(z) = nodes(g1)
>>>>>> nAttrs$label <- z
>>>>>> eAttrs$label <- c("a~h" = "Label 1", "c~h" = "Label 2")
>>>>>> attrs <- list(node = list(shape = "ellipse", fixedsize = FALSE))
>>>> plot(g1, nodeAttrs = nAttrs, edgeAttrs = eAttrs, attrs = attrs) And
>>>> instead of labeling the edges, they become more angled/straight and
>>>> less curved.  I've had similar problems with my own functions that
>>>> I'm
>>>> coding.  Similarly, when I specify "solid" or "dashed" nothing
>>>> happens.
>>>>  I'd be happy to send a picture, if you would like. Although making
>>>> solid or dashed a label instead of a style tends to again  
>>>> straighten
>>>> the edges.
>>>>>> FYI, I'm running R 2.4.1 and Rgraphviz 1.12.3 (the most current)
>>>>>> and
>>>> the proper version of xgvis that's needed to install this  
>>>> version of
>>>> Rgraphviz.  All of this is on a mac running OSX 10.4.8.
>>>>>> Any clue why this might be happening/is there a fix?
>>>>>> -Jarrett
>>>>>> ----------------------------------------
>>>>>> Jarrett Byrnes
>>>>>> Population Biology Graduate Group, UC Davis
>>>>>> Bodega Marine Lab
>>>>>> 707-875-1969
>>>>>> http://www-eve.ucdavis.edu/stachowicz/byrnes.shtml
>>>>>> 	[[alternative HTML version deleted]]
>>>>>> _______________________________________________
>>>>>> Bioconductor mailing list
>>>>>> Bioconductor at stat.math.ethz.ch
>>>>>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>>>>>> Search the archives: http://news.gmane.org/
>>>>>> gmane.science.biology.informatics.conductor
>>>>>
>>>>> _______________________________________________
>>>>> Bioconductor mailing list
>>>>> Bioconductor at stat.math.ethz.ch
>>>>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>>>>> Search the archives:
>>>>> http://news.gmane.org/gmane.science.biology.informatics.conductor
>>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Bioconductor mailing list
>>> Bioconductor at stat.math.ethz.ch
>>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>>> Search the archives: http://news.gmane.org/
>>> gmane.science.biology.informatics.conductor
>>



More information about the Bioconductor mailing list