[R] network plot problem

Rui Barradas ruipbarradas at sapo.pt
Fri Jul 27 13:51:56 CEST 2012


Hello,

As for the directed = FALSE, it works with me:

g <- graph(given, directed = FALSE)

As for the label, it's easy. Create an attribute 'name' and then set the 
label to that attribute. For instance, using the alphabet's letters, 
first uppercase.

V(g)$name <- c(LETTERS, letters)[V(g)]  # or any other names
V(g)$label <- V(g)$name

Keep 'name' and 'label' separate, like this you may change the label if 
needed but the name will still be there.
Then the plot functions recognise the label attribute.

Hope this helps,

Rui Barradas

Em 27-07-2012 11:37, Vlatka Matkovic Puljic escreveu:
> Thank you Rui.
>
> With matrix works better. I got plot I have expected to have.
>
> I want to be undirected. But
>
> directed = FALSE
> or
> as.undirected(graph)
>
> are not working? Where I'd gone wrong?
>
> Shouldn't it be possible to add names  instead of numbers of nods with
> vertex.label= ?
>
>
>
> 2012/7/26 Rui Barradas <ruipbarradas at sapo.pt>
>
>> Hello,
>>
>> I don't see the problem.
>>
>> given <- scan(text="
>>
>> 15 2
>> 10 4
>> 10 4
>> 10 4
>> 13 4
>> 13 4
>> 15 4
>> 18 4
>> 11 5
>> 2 6
>> 7 6
>> 7 6
>> 7 6
>> 12 6
>> 15 6
>> 15 6
>> 19 6
>> 22 6
>> 24 6
>> 6 7
>> 5 12
>> 5 12
>> 7 12
>> 11 12
>> 13 12
>> 13 12
>> 13 12
>> 13 12
>> 16 12
>> 17 12
>> 23 12
>> 23 12
>> 23 12
>> 23 12
>> 6 13
>> 12 13
>> 6 14
>> 6 15
>> 9 15
>> 12 15
>> 13 15
>> 17 16
>> 16 17
>> 1 18
>> 12 18
>> 23 18
>> 2 19
>> 6 19
>> 24 19
>> 21 22
>> 3 25
>> 5 26
>> 6 27
>> 7 27
>> 15 29
>> 20 30
>> 25 31
>> 28 31
>> 8 32
>> 6 33
>> 14 33
>> 22 34
>> ")
>> mat <- matrix(given, ncol=2, byrow=TRUE)
>>
>> g <- graph(given)
>> # Or, not run (note the transpose)
>> #g <- graph(t(mat))
>> # The edges are exactly what is given
>> E(g)
>>
>> V(g)$label <- V(g)
>> g$layout <- layout.fruchterman.reingold
>> plot(g, edge.arrow.size=0.5, edge.loop.angle=1, edge.curved=FALSE)
>>
>>
>> So my guess is you've messed up the graph creation.
>> Also, don't post datasets like that, use dput(), lik this:
>>
>> dput(given)
>> c(15, 2, 10, 4, 10, 4, 10, 4, 13, 4, 13, 4, 15, 4, 18, 4, 11,
>> 5, 2, 6, 7, 6, 7, 6, 7, 6, 12, 6, 15, 6, 15, 6, 19, 6, 22, 6,
>> 24, 6, 6, 7, 5, 12, 5, 12, 7, 12, 11, 12, 13, 12, 13, 12, 13,
>> 12, 13, 12, 16, 12, 17, 12, 23, 12, 23, 12, 23, 12, 23, 12, 6,
>> 13, 12, 13, 6, 14, 6, 15, 9, 15, 12, 15, 13, 15, 17, 16, 16,
>> 17, 1, 18, 12, 18, 23, 18, 2, 19, 6, 19, 24, 19, 21, 22, 3, 25,
>> 5, 26, 6, 27, 7, 27, 15, 29, 20, 30, 25, 31, 28, 31, 8, 32, 6,
>> 33, 14, 33, 22, 34)
>>
>> Now all anyone has to do is to copy that output and paste it into an R
>> session.
>> (Try it with the matrix to see the result)
>>
>> Hope this helps,
>>
>> Rui Barradas
>> Em 25-07-2012 16:27, Vlatka Matkovic Puljic escreveu:
>>
>>> **Hi,
>>>
>>>
>>> I wanted to create a network of drugs that are being studied together.
>>> So, I created a file as a graph.
>>> But plot of my network is not corect!
>>> It looks like to me that something else is lying behind this network links
>>> created.
>>>
>>> Could someone help me with this?
>>>
>>> Thanx!
>>>
>>> a<-read.graph(file=file.**choose(), format="edgelist")
>>> plot.igraph(a)
>>>
>>> File (number present ID of drug):
>>>
>>> 15 2
>>> 10 4
>>> 10 4
>>> 10 4
>>> 13 4
>>> 13 4
>>> 15 4
>>> 18 4
>>> 11 5
>>> 2 6
>>> 7 6
>>> 7 6
>>> 7 6
>>> 12 6
>>> 15 6
>>> 15 6
>>> 19 6
>>> 22 6
>>> 24 6
>>> 6 7
>>> 5 12
>>> 5 12
>>> 7 12
>>> 11 12
>>> 13 12
>>> 13 12
>>> 13 12
>>> 13 12
>>> 16 12
>>> 17 12
>>> 23 12
>>> 23 12
>>> 23 12
>>> 23 12
>>> 6 13
>>> 12 13
>>> 6 14
>>> 6 15
>>> 9 15
>>> 12 15
>>> 13 15
>>> 17 16
>>> 16 17
>>> 1 18
>>> 12 18
>>> 23 18
>>> 2 19
>>> 6 19
>>> 24 19
>>> 21 22
>>> 3 25
>>> 5 26
>>> 6 27
>>> 7 27
>>> 15 29
>>> 20 30
>>> 25 31
>>> 28 31
>>> 8 32
>>> 6 33
>>> 14 33
>>> 22 34
>>>
>>>
>>>
>



More information about the R-help mailing list