Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

We can have this Graph:

v = {1 \[UndirectedEdge] 9, 1 \[UndirectedEdge] 10, 
1 \[UndirectedEdge] 8, 10 \[UndirectedEdge] 2, 
10 \[UndirectedEdge] 5, 9 \[UndirectedEdge] 3, 
9 \[UndirectedEdge] 6, 8 \[UndirectedEdge] 7, 
8 \[UndirectedEdge] 4, 7 \[UndirectedEdge] 3, 
7 \[UndirectedEdge] 2, 6 \[UndirectedEdge] 2, 
6 \[UndirectedEdge] 4, 5 \[UndirectedEdge] 3, 
5 \[UndirectedEdge] 4};
g = Graph[v, VertexLabels -> Placed["Name", Center], 
VertexStyle -> White, VertexSize -> 0.5]

Which looks like this:

enter image description here

How can I add other characteristics inside the vertex labels?Such as other numbers in second line of labels?Or more info such as some codes in third line?

share|improve this question
    
I would suggest to change the title: the title talks about VertexStyle while the question deals with VertexLabel. Or am I wrong –  Öskå Oct 2 '13 at 16:52
    
@Öskå Both could be.Thanks for the offer but still I prefer to stand on my first title –  Alex Oct 2 '13 at 17:06

3 Answers 3

up vote 2 down vote accepted

I am sure there must be an easier way (I cannot see at the moment), but it is possible to use VertexLabels the way you want:

labs = CharacterRange["a", "j"];
g = Graph[v, 
       VertexLabels -> (With[{vtx = Range@VertexCount@Graph@v}, 
          Rule @@@ Transpose[{vtx, Placed[ToString@# <> "\n" <> labs[[#]] "\nsome text", 
          Center] & /@ vtx}]]),
       VertexStyle -> White,
       VertexSize -> 0.75]

So, I just count the vertices (vtx) and set up a Rule to format the labels. Note that I used labs as to show how we can use labels that change from vertex to vertex. I hope this is what you had in mind:

enter image description here

Also, you might want to look into GraphPlot, and into VertexRenderingFunction in particular.

share|improve this answer

Quite similar to Pinguin Dirk's answer, but here it is:

v = {1 \[UndirectedEdge] 9, 1 \[UndirectedEdge] 10, 
     1 \[UndirectedEdge] 8, 10 \[UndirectedEdge] 2, 
     10 \[UndirectedEdge] 5, 9 \[UndirectedEdge] 3, 
     9 \[UndirectedEdge] 6, 8 \[UndirectedEdge] 7, 
     8 \[UndirectedEdge] 4, 7 \[UndirectedEdge] 3, 
     7 \[UndirectedEdge] 2, 6 \[UndirectedEdge] 2, 
     6 \[UndirectedEdge] 4, 5 \[UndirectedEdge] 3, 
     5 \[UndirectedEdge] 4};

vertexLabels = Table[n -> Placed[Column[{n, "foo"}, Center], Center],
  {n, VertexCount[Graph[v]]}];

g = Graph[v, VertexLabels -> vertexLabels, VertexStyle -> White, VertexSize -> 0.5]

enter image description here

share|improve this answer
2  
The problem with your answer & Pinguin Dirk's is that the OP would not really be able to say anything else than foo or some text. Plus, the OP would not be able to choose whether he wants more than one line or not. –  Öskå Oct 2 '13 at 17:17

You could use Labeled. Because 2 of the 3 elements are placed outside the vertex, you can use smaller vertices.

Graph[{ Labeled[1, Placed[{1, "New York", "USA"}, {Center, Above, Below}]], 
        Labeled[2, Placed[{2, "Paris", "France"}, {Center, Above, Below}]], 
        Labeled[3, Placed[{3, "Rome", "Italy"}, {Center, Above, Below}]]}, 
      {1 -> 2, 2 -> 3, 3 -> 1},
 VertexLabelStyle -> 14, VertexStyle -> White, VertexSize -> 0.1, ImagePadding -> 30]

VertexLabels

share|improve this answer
    
Are you on Mathematica 9? –  Öskå Oct 2 '13 at 17:27
    
Yes. I'm on Mathemaica 9. But Labeled does not required 9. –  David Carraher Oct 2 '13 at 17:29
    
I know. But I was wondering why your Graph started on the bottom left while mine started on the right :) So I guess it's some versions differences. –  Öskå Oct 2 '13 at 17:31
    
On my machine, your code places the vertices in the same positions as my code. So, if you are using v 9, I can't explain the discrepancy. –  David Carraher Oct 2 '13 at 17:33
    
And on mine, your code places the vertices on the same positions as mine ;-) Hence the version question. –  Öskå Oct 2 '13 at 17:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.