[Date Index]
[Thread Index]
[Author Index]
Re: Re: Re: Re: changing
Murray Eisenberg wrote:
>But how do I get GraphPlot to use labels that _I_ specify, rather than
>numbers -- when using a graph created with Combinatorica and without
>having to directly specify the labels as part of the graph structure.
>
>For example:
>
> g=Cycle[6];
>
> GraphPlot[g,
> VertexLabeling->True,VertexRenderingFunction->(Text[...]&)]
>
>This sort of thing doesn't produce any vertex labels even if I first use
>something like:
>
> g = SetGraphOptions[g, VertexLabel -> Characters["b,a,f,e,d,c"]];
>
>
The VertexLabel option can take Boolean values only. Perhaps you meant:
g = SetVertexLabels[Cycle[6], {b,a,f,e,d,c}];
GraphPlot[g, VertexLabeling -> True]
Carl Woll
Wolfram Research
>(Comment: The documentation about graph display is really atrociously
>inadequate!)
>
>Carl Woll wrote:
>
>
>>Murray Eisenberg wrote:
>>
>>
>>
>>>Yes, GraphPlot seems to permit making nice vertices (or edges), but then
>>>the labeling -- either with a Graph object from Combinatorica or just
>>>the kind of graph described by the GraphPlot reference page -- does not
>>>seem to admit vertex labels or edge labels, at least so far as I can
>>>see. For example, neither of the following displays either vertex
>>>labels or edge labels:
>>>
>>>
>>>GraphPlot[Cycle[3], Method -> Automatic, VertexLabeling -> True,
>>> EdgeLabeling -> True, EdgeRenderingFunction -> ({Black, Line[#1]} &),
>>> VertexRenderingFunction -> ({EdgeForm[{Thickness[0.005], Red}],
>>> Yellow, Disk[#1, 0.04]} &)]
>>>
>>>GraphPlot[{{v1 -> v2, "a"}, {v2 -> v3, "b"}, {v3 -> v1, "c"}},
>>> Method -> Automatic, VertexLabeling -> True, EdgeLabeling -> True,
>>> EdgeRenderingFunction -> ({Black, Line[#1]} &),
>>> VertexRenderingFunction -> ({EdgeForm[{Thickness[0.005], Red}],
>>> Yellow, Disk[#1, 0.04]} &)]
>>>
>>>On the other hand, if I remove he VertexRenderingFunction option, I do
>>>see vertex labels on the default (yellow boxes) vertex shapes:
>>>
>>>
>>>
>>>
>> From the help for VertexLabeling:
>>
>>"Any explicit setting for VertexRenderingFunction overrides the setting
>>for VertexLabeling."
>>
>>Similarly for EdgeLabeling.
>>
>>If you want labels when using VertexRenderingFunction, you need to put
>>them in explicitly in the VertexRenderingFunction rhs. The first example
>>in the VertexRenderingFunction function page does this.
>>
>>If you want to recreate the default labeling inside
>>VertexRenderingFunction, the following may help:
>>
>>VertexRenderingFunction -> (Text[
>> Framed[#2, {Background -> RGBColor[1, 1, .8], FrameStyle ->
>>RGBColor[.94, .85, .36], FrameMargins -> Automatic}], #] &)]
>>
>>Carl Woll
>>Wolfram Research
>>
>>
>>
>>> GraphPlot[{v1 -> v2, "a"}, {v2 -> v3, "b"}, {v3 -> v1, "c"}},
>>> Method -> Automatic, VertexLabeling -> True,
>>> EdgeLabeling -> True, EdgeRenderingFunction -> ({Black, Line[#1]} &)]
>>>
>>>GraphPlot[Cycle[3], Method -> Automatic, VertexLabeling -> True,
>>> EdgeLabeling -> True, EdgeRenderingFunction -> ({Black, Line[#1]} &)]
>>>
>>>Of course this now defeats the purpose of using GraphPlot so as to get
>>>exactly the kind of vertex shapes that VertexRenderingFunction, above,
>>>provides.
>>>
>>>Similarly with EdgeRenderingFunction.
>>>
>>>The kernel function GraphPlot doesn't seem to mesh very well with
>>>Combinatorica's graph functions. This all still seems only "half-baked".
>>>
>>>
>>>J. McKenzie Alexander wrote:
>>>
>>>
>>>
>>>
>>>>Take a look at GraphPlot, the graph rendering function that is built
>>>>into the Mathematica kernel. I switched from using ShowGraph to
>>>>GraphPlot after realising that it was (a) faster and (b) easier to
>>>>customise. Here's what you want:
>>>>
>>>>GraphPlot[
>>>>Cycle[3],
>>>>Method -> None,
>>>>EdgeRenderingFunction -> ({Black, Line[#1]} &),
>>>>VertexRenderingFunction -> ({EdgeForm[{Thickness[0.005], Red}], Yellow,
>>>> Disk[#1, 0.04]} &)
>>>>]
>>>>
>>>>You need to specify Method->None, otherwise GraphPlot will override the
>>>>specified positions of the vertices in the graph and use its own default
>>>>vertex positioning algorithm.
>>>>
>>>>VertexRenderingFunction is what you need to define in order to customise
>>>>the appearance of the vertices.
>>>>
>>>>I provided a definition of EdgeRenderingFunction just so that the edges
>>>>are rendered in the same way as ShowGraph.
>>>>
>>>>Cheers,
>>>>
>>>>Jason
>>>>
>>>>--
>>>>J. McKenzie Alexander
>>>>Department of Philosophy, Logic and Scientific Method
>>>>London School of Economics and Political Science
>>>>Houghton Street, London WC2A 2AE
>>>>
>>>>
>>>>On 7 Mar 2008, at 07:29, Murray Eisenberg wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>With Mathematica 6, I can change the default style (medium black disk)
>>>>>for rendering the vertices of a Combinatorica Graph like this:
>>>>>
>>>>> Needs["Combinatorica`"]
>>>>>
>>>>> g = Cycle[3];
>>>>> ShowGraph[g, VertexStyle -> Disk[Large], VertexColor -> Red]
>>>>>
>>>>>But how can I, for example, change the vertex style so it is, say, a
>>>>>large yellow disk with a thick red boundary? Or even just change it to
>>>>>be a circle? I tried "obvious" things like the following, but they
>>>>>cause errors:
>>>>>
>>>>> ShowGraph[g, VertexStyle -> Graphics[Circle[], ImageSize -> 20]]
>>>>>
>>>>>--
>>>>>Murray Eisenberg murray at math.umass.edu
>>>>>Mathematics & Statistics Dept.
>>>>>Lederle Graduate Research Tower phone 413 549-1020 (H)
>>>>>University of Massachusetts 413 545-2859 (W)
>>>>>710 North Pleasant Street fax 413 545-1801
>>>>>Amherst, MA 01003-9305
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>Please access the attached hyperlink for an important electronic
>>>>communications disclaimer:
>>>>http://www.lse.ac.uk/collections/secretariat/legal/disclaimer.htm
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>>
>
>
>
Prev by Date:
**Re: Problems with differentiating Piecewise functions**
Next by Date:
**Re: Number of monomials**
Previous by thread:
**Re: Re: Re: changing style of vertices**
Next by thread:
**Re: changing style of vertices for ShowGraph with Combinatorica**
| |