communities
class. This manual page
describes the operations of this class.## S3 method for class 'communities':
print(x, \dots)## S3 method for class 'communities':
length(x)
sizes(communities)
membership(communities)
## S3 method for class 'communities':
modularity(x, \dots)
algorithm(communities)
crossing(communities, graph)
is.hierarchical(communities, full = FALSE)
merges(communities)
cutat(communities, no, steps)
## S3 method for class 'communities':
as.dendrogram(object, hang=-1,
use.modularity=FALSE, \dots)
## S3 method for class 'communities':
as.hclust(x, hang = -1,
use.modularity = FALSE, \dots)
## S3 method for class 'communities':
asPhylo(x, use.modularity=FALSE, \dots)
showtrace(communities)
code.length(communities)
## S3 method for class 'communities':
plot(x, y,
colbar=rainbow(length(x)),
col=colbar[membership(x)],
mark.groups=communities(x),
edge.color=c("black", "red")[crossing(x,y)+1],
...)
communities
object, the result of
an igraph community detection function.communities
.TRUE
, then
is.hierarchical
only returns TRUE
for fully
hierarchical algorithms. The x
.no
and steps
must be supplied.no
and steps
must be
supplied.NULL
here if you dplot.hclust
.plot.communities
passes
these to plot.igraph
. The other functions silently
ignore them.print
returns the communities
object itself, invisibly. length
returns an integer scalar.
sizes
returns a numeric vector.
membership
returns a numeric vector, one number for each vertex
in the graph that was the input of the community detection.
modularity
returns a numeric scalar.
algorithm
returns a character scalar.
crossing
returns a logical vector.
is.hierarchical
returns a logical scalar.
merges
returns a two-column numeric matrix.
cutat
returns a numeric vector, the membership vector of the
vertices.
as.dendrogram
returns a dendrogram
object.
showtrace
returns a character vector.
code.length
returns a numeric scalar for communities found with
the InfoMAP method and NULL
for other methods.
plot
for communities
objects returns NULL
,
invisibly.
igraph implements a number of commmunity detection methods (see them
below), all of which return an object of the class
communities
. Because the community structure detection
algorithms are different, communities
objects do not always
have the same structure. Nevertheless, they have some common
operations, these are documented here.
The print
generic function is defined for communities
,
it prints a short summary.
The length
generic function call be called on
communities
and returns the number of communities.
The sizes
function returns the community sizes, in the order of
their ids.
membership
gives the division of the vertices, into
communities. It returns a numeric vector, one value for each vertex,
the id of its community. Community ids start from one. Note that some
algorithms calculate the complete (or incomplete) hierarchical
structure of the communities, and not just a single
partitioning. For these algorithms typically the membership for the
highest modularity value is returned, but see also the manual pages of
the individual algorithms.
modularity
gives the modularity score of the partitioning. (See
modularity.igraph
for details. For algorithms that do
not result a single partitioning, the highest modularity value is
returned.
algorithm
gives the name of the algorithm that was used to
calculate the community structure.
crossing
returns a logical vector, with one value for each
edge, ordered according to the edge ids. The value is TRUE
iff
the edge connects two different communities, according to the (best)
membership vector, as returned by membership()
.
is.hierarchical
checks whether a hierarchical algorithm was
used to find the community structure. Some functions only make sense
for hierarchical methods (e.g. merges
, cutat
and
as.dendrogram
).
merges
returns the merge matrix for hierarchical methods. An
error message is given, if a non-hierarchical method was used to find
the community structure. You can check this by calling
is.hierarchical
on the communities
object.
cutat
cuts the merge tree of a hierarchical community finding
method, at the desired place and returns a membership vector. The
desired place can be expressed as the desired number of communities or
as the number of merge steps to make. The function gives an error
message, if called with a non-hierarchical method.
as.dendrogram
converts a hierarchical community structure to a
dendrogram
object. It only works for hierarchical methods, and
gives an error message to others. See dendrogram
for details.
as.hclust
is similar to as.dendrogram
, but converts a
hierarchical community structure to a hclust
object.
asPhylo
converts a hierarchical community structure to
a phylo
object, you will need the ape
package for this.
showtrace
works (currently) only for communities found by the
leading eigenvector method
(leading.eigenvector.community
), and returns a character
vector that gives the steps performed by the algorithm while finding
the communities.
code.length
is defined for the InfoMAP method
(infomap.community
and returns the code length of the
partition.
It is possibly to call the plot
function on communities
objects. This will plot the graph (and uses plot.igraph
internally), with the communities shown. By default it colores the
vertices according to their communities, and also marks the vertex
groups corresponding to the communities. It passes additional
arguments to plot.igraph
, please see that and also
igraph.plotting
on how to change the plot.
dendPlot
for plotting community structure
dendrograms.
See compare.communities
for comparing two community
structures on the same graph.
The different methods for finding communities, they all return a
communities
object:
edge.betweenness.community
,
fastgreedy.community
,
label.propagation.community
,
leading.eigenvector.community
,
multilevel.community
,
optimal.community
,
spinglass.community
,
walktrap.community
.karate <- graph.famous("Zachary")
wc <- walktrap.community(karate)
modularity(wc)
membership(wc)
plot(wc, karate)
Run the code above in your browser using DataLab