igraph-help
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [igraph] Derived layouts for subgraphs


From: Tamás Nepusz
Subject: Re: [igraph] Derived layouts for subgraphs
Date: Tue, 11 Mar 2014 10:20:40 +0100

Hi,

The layout of a graph is simply a matrix with n rows and 2 columns, so one 
thing that you can do is to store the layout separately and then subset the 
matrix for the individual subgraphs; e.g.:

layout <- layout.fruchterman.reingold(g)
subg <- induced.subgraph(g, vids)
sublayout <- layout[vids,]
plot(subg, layout=sublayout)

Another option is to store the X and Y coordinates of the layout in vertex 
attributes named “x” and “y”, because these are used automatically by igraph 
when you plot a graph:

layout <- layout.fruchterman.reingold(g)
V(g)$x <- layout[,1]
V(g)$y <- layout[,2]
subg <- induced.subgraph(g, vids)
plot(subg)

--  
T.

------------------------------------------------------
From: David Edwards address@hidden
Reply: Help for igraph users address@hidden
Date: 11 March 2014 at 08:24:21
To:address@hidden address@hidden
Subject:  [igraph] Derived layouts for subgraphs

> Hi
> when the layout of graph G is set, could
> induced.subgraph(G, vids) (for some vector vids of vertex ids)
> inherit that layout? (it seems to inherit other attributes).
> Best regards
> David
> ________________________________________
> From: address@hidden address@hidden  
> on behalf of address@hidden address@hidden  
> Sent: 10 March 2014 17:01
> To: address@hidden
> Subject: igraph-help Digest, Vol 92, Issue 6
>  
> Send igraph-help mailing list submissions to
> address@hidden
>  
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.nongnu.org/mailman/listinfo/igraph-help
> or, via email, send a message with subject or body 'help' to
> address@hidden
>  
> You can reach the person managing the list at
> address@hidden
>  
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of igraph-help digest..."
>  
>  
> Today's Topics:
>  
> 1. Re: plotting graphs with edges of various length (G?bor Cs?rdi)
> 2. Re: plotting graphs with edges of various length (Tam?s Nepusz)
> 3. Re: plotting graphs with edges of various length (aschmid1)
> 4. Re: plotting graphs with edges of various length (G?bor Cs?rdi)
> 5. Installation error (David Gelvez Alvarez)
> 6. Re: Installation error (G?bor Cs?rdi)
> 7. Re: Installation error (Tam?s Nepusz)
> 8. Re: Installation error (Tam?s Nepusz)
> 9. Re: Installation error (David Gelvez Alvarez)
>  
>  
> ----------------------------------------------------------------------
>  
> Message: 1
> Date: Sun, 9 Mar 2014 14:38:47 -0400
> From: G?bor Cs?rdi  
> To: Help for igraph users  
> Subject: Re: [igraph] plotting graphs with edges of various length
> Message-ID:
>  
> Content-Type: text/plain; charset="iso-8859-1"
>  
> Hi, maybe I am missing something, but what is your question?
>  
> Why some red edges are shorter? For that we would need a reproducible
> example.
>  
> Why the "weight" and/or "length" attribute is not used automatically? Or
> something else?
>  
> Gabor
>  
>  
> On Sat, Mar 8, 2014 at 10:37 PM, aschmid1 wrote:
>  
> > Hi,
> > I thought that the commands
> > gm<-set.edge.attribute(gm, "weight", index=E(gm), value=weights)
> > gm<-set.edge.attribute(gm, "length", index=E(gm), value=weights)
> > ensure that plot(gm) yields the edge lengths corresponding to the values
> > of vector weights. It seems not the case. I attach the graph in which blue
> > edges have weights < 1 and red edges have weights >1. However, some red
> > edges look shorter than some blue edges.
> > Thanks much, Alec
> > _______________________________________________
> > igraph-help mailing list
> > address@hidden
> > https://lists.nongnu.org/mailman/listinfo/igraph-help
> >
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:  
>  
> ------------------------------
>  
> Message: 2
> Date: Sun, 9 Mar 2014 20:32:15 +0100
> From: Tam?s Nepusz  
> To: Help for igraph users , aschmid1
>  
> Subject: Re: [igraph] plotting graphs with edges of various length
> Message-ID:  
> Content-Type: text/plain; charset="utf-8"
>  
> > I thought that the commands
> > gm<-set.edge.attribute(gm, "weight", index=E(gm), value=weights)
> > gm<-set.edge.attribute(gm, "length", index=E(gm), value=weights)
> > ensure that plot(gm) yields the edge lengths corresponding to the values
> > of vector weights.
> No, it doesn?t. *Some* layout algorithms *might* take into account the 
> weights of the  
> edges to *some* extent (i.e. they would *try* to ensure that edges with 
> larger weights  
> end up being shorter than edges with smaller weights), but there is no layout 
> algorithm  
> that would guarantee that the lengths you specify are satisfied exactly. The 
> main reason  
> is that most of the length combinations are impossible to satisfy in the 2D 
> plane; for  
> instance, it is impossible to plot a full graph of size 4 if we want every 
> single edge to  
> be of length 1 (and there are infinitely many examples for this).
>  
> As far as I know, the Fruchterman-Reingold layout algorithm (see 
> layout.fruchterman.reingold)  
> is the only one in igraph that supports weights; 
> see?http://igraph.sourceforge.net/doc/R/layout.html  
> . But even for the Fruchterman-Reingold algorithm, the only thing that the 
> weights do  
> is that they make the attraction forces between the endpoints of the edges 
> proportional  
> to the weight of the edge.
>  
> ??
> T.
>  
>  
>  
>  
>  
> ------------------------------
>  
> Message: 3
> Date: Sun, 09 Mar 2014 18:05:37 -0400
> From: aschmid1  
> To: Tam?s Nepusz  
> Cc: Help for igraph users  
> Subject: Re: [igraph] plotting graphs with edges of various length
> Message-ID: <address@hidden>
> Content-Type: text/plain; charset=UTF-8; format=flowed
>  
> Tamas,
> Thank you. I suspected I wanted too much from igraph. Indeed one cannot
> draw say a triangle with arbitrary edge lengths... But then I have a
> naive question (I'm new to graphs): how the edge attribute "length" may
> be used (providing there is also attribute "weight")?
> Best, Alec
>  
> On 03/09/2014 3:32 PM, Tam?s Nepusz wrote:
> >> I thought that the commands
> >> gm<-set.edge.attribute(gm, "weight", index=E(gm), value=weights)
> >> gm<-set.edge.attribute(gm, "length", index=E(gm), value=weights)
> >> ensure that plot(gm) yields the edge lengths corresponding to the
> >> values
> >> of vector weights.
> > No, it doesn?t. *Some* layout algorithms *might* take into account the
> > weights of the edges to *some* extent (i.e. they would *try* to ensure
> > that edges with larger weights end up being shorter than edges with
> > smaller weights), but there is no layout algorithm that would
> > guarantee that the lengths you specify are satisfied exactly. The main
> > reason is that most of the length combinations are impossible to
> > satisfy in the 2D plane; for instance, it is impossible to plot a full
> > graph of size 4 if we want every single edge to be of length 1 (and
> > there are infinitely many examples for this).
> >
> > As far as I know, the Fruchterman-Reingold layout algorithm (see
> > layout.fruchterman.reingold) is the only one in igraph that supports
> > weights; see?http://igraph.sourceforge.net/doc/R/layout.html . But
> > even for the Fruchterman-Reingold algorithm, the only thing that the
> > weights do is that they make the attraction forces between the
> > endpoints of the edges proportional to the weight of the edge.
> >
> > ??
> > T.
>  
>  
>  
> ------------------------------
>  
> Message: 4
> Date: Sun, 9 Mar 2014 19:01:09 -0400
> From: G?bor Cs?rdi  
> To: Help for igraph users  
> Cc: Tam?s Nepusz  
> Subject: Re: [igraph] plotting graphs with edges of various length
> Message-ID:
>  
> Content-Type: text/plain; charset="iso-8859-1"
>  
> I am not sure why you think the "length" edge attribute is used for
> anything. It is not, AFAIK.
>  
> G.
>  
>  
> On Sun, Mar 9, 2014 at 6:05 PM, aschmid1 wrote:
>  
> > Tamas,
> > Thank you. I suspected I wanted too much from igraph. Indeed one cannot
> > draw say a triangle with arbitrary edge lengths... But then I have a naive
> > question (I'm new to graphs): how the edge attribute "length" may be used
> > (providing there is also attribute "weight")?
> > Best, Alec
> >
> >
> > On 03/09/2014 3:32 PM, Tam?s Nepusz wrote:
> >
> >> I thought that the commands
> >>> gm<-set.edge.attribute(gm, "weight", index=E(gm), value=weights)
> >>> gm<-set.edge.attribute(gm, "length", index=E(gm), value=weights)
> >>> ensure that plot(gm) yields the edge lengths corresponding to the values
> >>> of vector weights.
> >>>
> >> No, it doesn't. *Some* layout algorithms *might* take into account the
> >> weights of the edges to *some* extent (i.e. they would *try* to ensure
> >> that edges with larger weights end up being shorter than edges with
> >> smaller weights), but there is no layout algorithm that would
> >> guarantee that the lengths you specify are satisfied exactly. The main
> >> reason is that most of the length combinations are impossible to
> >> satisfy in the 2D plane; for instance, it is impossible to plot a full
> >> graph of size 4 if we want every single edge to be of length 1 (and
> >> there are infinitely many examples for this).
> >>
> >> As far as I know, the Fruchterman-Reingold layout algorithm (see
> >> layout.fruchterman.reingold) is the only one in igraph that supports
> >> weights; see http://igraph.sourceforge.net/doc/R/layout.html . But
> >> even for the Fruchterman-Reingold algorithm, the only thing that the
> >> weights do is that they make the attraction forces between the
> >> endpoints of the edges proportional to the weight of the edge.
> >>
> >> --
> >> T.
> >>
> >
> > _______________________________________________
> > igraph-help mailing list
> > address@hidden
> > https://lists.nongnu.org/mailman/listinfo/igraph-help
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:  
>  
> ------------------------------
>  
> Message: 5
> Date: Sun, 9 Mar 2014 19:46:26 -0500
> From: David Gelvez Alvarez  
> To: address@hidden
> Subject: [igraph] Installation error
> Message-ID:
>  
> Content-Type: text/plain; charset="iso-8859-1"
>  
> Dear all,
>  
> Thanks a lot for your help. I'm trying to install igraph for python but I
> have not been able to do it. I have the Anaconda Python version.
>  
> I downloaded the dmg for the 0.7 version and followed the dialog and the
> import does not work. Also, I tried to use the easy install and I get the
> following error:
>  
> In file included from src/arpackobject.c:23:
> src/arpackobject.h:27:10: fatal error: 'igraph_arpack.h' file not found
> #include  
> ^
> 1 error generated.
> error: Setup script exited with error: command 'gcc' failed with exit
> status 1
>  
> Can some one give me a hand?
>  
> Kind regards,
>  
> David
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:  
>  
> ------------------------------
>  
> Message: 6
> Date: Sun, 9 Mar 2014 21:15:23 -0400
> From: G?bor Cs?rdi  
> To: Help for igraph users  
> Subject: Re: [igraph] Installation error
> Message-ID:
>  
> Content-Type: text/plain; charset="iso-8859-1"
>  
> Hi, the DMG is for the system python, so it won't work with Anaconda
> (apparently).
>  
> If you install from source you need to install the igraph C library first.
>  
> Gabor
>  
>  
> On Sun, Mar 9, 2014 at 8:46 PM, David Gelvez Alvarez
> wrote:
>  
> > Dear all,
> >
> > Thanks a lot for your help. I'm trying to install igraph for python but I
> > have not been able to do it. I have the Anaconda Python version.
> >
> > I downloaded the dmg for the 0.7 version and followed the dialog and the
> > import does not work. Also, I tried to use the easy install and I get the
> > following error:
> >
> > In file included from src/arpackobject.c:23:
> > src/arpackobject.h:27:10: fatal error: 'igraph_arpack.h' file not found
> > #include  
> > ^
> > 1 error generated.
> > error: Setup script exited with error: command 'gcc' failed with exit
> > status 1
> >
> > Can some one give me a hand?
> >
> > Kind regards,
> >
> > David
> >
> > _______________________________________________
> > igraph-help mailing list
> > address@hidden
> > https://lists.nongnu.org/mailman/listinfo/igraph-help
> >
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:  
>  
> ------------------------------
>  
> Message: 7
> Date: Mon, 10 Mar 2014 11:09:12 +0100
> From: Tam?s Nepusz  
> To: Help for igraph users  
> Subject: Re: [igraph] Installation error
> Message-ID:  
> Content-Type: text/plain; charset="utf-8"
>  
> Hello,
>  
> As Gabor has confirmed it, the DMG won?t work because it installs igraph for 
> the system  
> Python (that comes built-in with Mac OS X) and not Anaconda Python. You have 
> to compile  
> the Python module yourself. easy_installing python-igraph does not work yet 
> because  
> you have not downloaded and installed the C core of igraph, and the Python 
> interface depends  
> on the C core.
>  
> Actually, I was a bit lazy as I haven?t released the 0.7 version of the 
> Python interface  
> yet even though the core C library is already at version 0.7. Let me release 
> the 0.7 version  
> first (I?ll do it today) and then you can retry with easy_install because the 
> installer  
> of the 0.7 version should now be smart enough to download and compile the 
> corresponding  
> C library as well if you have not installed it already.
>  
> All the best,
> --
> T.
>  
> ------------------------------------------------------
> From:?David Gelvez Alvarez address@hidden
> Reply:?Help for igraph users address@hidden
> Date:?10 March 2014 at 01:47:20
> To:address@hidden address@hidden
> Subject:? [igraph] Installation error
>  
> > Dear all,
> >
> > Thanks a lot for your help. I'm trying to install igraph for python but I
> > have not been able to do it. I have the Anaconda Python version.
> >
> > I downloaded the dmg for the 0.7 version and followed the dialog and the
> > import does not work. Also, I tried to use the easy install and I get the
> > following error:
> >
> > In file included from src/arpackobject.c:23:
> > src/arpackobject.h:27:10: fatal error: 'igraph_arpack.h' file not found
> > #include
> > ^
> > 1 error generated.
> > error: Setup script exited with error: command 'gcc' failed with exit
> > status 1
> >
> > Can some one give me a hand?
> >
> > Kind regards,
> >
> > David
> > _______________________________________________
> > igraph-help mailing list
> > address@hidden
> > https://lists.nongnu.org/mailman/listinfo/igraph-help
> >
>  
>  
>  
>  
> ------------------------------
>  
> Message: 8
> Date: Mon, 10 Mar 2014 11:20:57 +0100
> From: Tam?s Nepusz  
> To: Help for igraph users  
> Subject: Re: [igraph] Installation error
> Message-ID:  
> Content-Type: text/plain; charset="utf-8"
>  
> > Actually, I was a bit lazy as I haven?t released the 0.7 version of the 
> > Python interface?  
> > yet even though the core C library is already at version 0.7. Let me 
> > release the 0.7 version  
> > first (I?ll do it today)
> Okay, it turned out to be faster than expected; the source code of the Python 
> interface  
> for the 0.7 version is now uploaded to the Python Package Index. I tried 
> ?easy_install  
> python-igraph? in a clean virtual environment on a machine where the C core 
> was not installed  
> and everything went fine, so please try ?easy_install python-igraph? again 
> and let  
> me know if it does not work with Anaconda Python.
>  
> All the best,
> Tamas
>  
>  
>  
> ------------------------------
>  
> Message: 9
> Date: Mon, 10 Mar 2014 05:58:38 -0500
> From: David Gelvez Alvarez  
> To: Help for igraph users  
> Subject: Re: [igraph] Installation error
> Message-ID:
>  
> Content-Type: text/plain; charset="iso-8859-1"
>  
> Hi All,
>  
> Thank you for your prompt answer. I tried the easy install, but here is
> what I get. Thanks again for your help!
>  
> David
>  
> *********** Log starts here
>  
> grep: /usr/lib/libiconv.la: No such file or directory
> sed: /usr/lib/libiconv.la: No such file or directory
> libtool: link: `/usr/lib/libiconv.la' is not a valid libtool archive
> make[3]: *** [libigraph.la] Error 1
> make[2]: *** [all] Error 2
> make[1]: *** [all-recursive] Error 1
> make: *** [all] Error 2
> Could not download and compile the C core of igraph.
>  
> WARNING: we were not able to detect where igraph is installed on
> your machine (if it is installed at all). We will use the fallback
> library and include pathss hardcoded in setup.py and hope that the
> C core of igraph is installed there.
>  
> If the compilation fails and you are sure that igraph is installed
> on your machine, adjust the following two variables in setup.py
> accordingly and try again:
>  
> - LIBIGRAPH_FALLBACK_INCLUDE_DIRS
> - LIBIGRAPH_FALLBACK_LIBRARY_DIRS
>  
> Build type: dynamic extension
> Include path: /usr/include/igraph /usr/local/include/igraph
> Library path:
> Linked dynamic libraries: igraph
> Linked static libraries:
> Extra compiler options:
> Extra linker options:
> In file included from src/arpackobject.c:23:
> src/arpackobject.h:27:10: fatal error: 'igraph_arpack.h' file not found
> #include  
> ^
> 1 error generated.
> error: Setup script exited with error: command 'gcc' failed with exit
> status 1
>  
>  
> On Mon, Mar 10, 2014 at 5:20 AM, Tam?s Nepusz wrote:
>  
> > > Actually, I was a bit lazy as I haven't released the 0.7 version of the
> > Python interface
> > > yet even though the core C library is already at version 0.7. Let me
> > release the 0.7 version
> > > first (I'll do it today)
> > Okay, it turned out to be faster than expected; the source code of the
> > Python interface for the 0.7 version is now uploaded to the Python Package
> > Index. I tried "easy_install python-igraph" in a clean virtual environment
> > on a machine where the C core was not installed and everything went fine,
> > so please try "easy_install python-igraph" again and let me know if it does
> > not work with Anaconda Python.
> >
> > All the best,
> > Tamas
> >
> > _______________________________________________
> > igraph-help mailing list
> > address@hidden
> > https://lists.nongnu.org/mailman/listinfo/igraph-help
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:  
>  
> ------------------------------
>  
> _______________________________________________
> igraph-help mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/igraph-help
>  
>  
> End of igraph-help Digest, Vol 92, Issue 6
> ******************************************
>  
> _______________________________________________
> igraph-help mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/igraph-help
>  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]