Modularity Weighted Layout#
Submodules#
Module contents#
- graphistry.layout.modularity_weighted.modularity_weighted.modularity_weighted_layout(g, community_col=None, community_alg=None, community_params=None, same_community_weight=2.0, cross_community_weight=0.3, edge_influence=2.0, engine=EngineAbstract.AUTO)#
Compute a modularity-weighted layout, where edges are weighted based on whether they connect nodes in the same community or different communities.
Computes the community if not provided, including with GPU acceleration, using Louvain
- Parameters:
g (Plottable) – input graph
community_col (str | None) – column in nodes with community labels
community_alg (str | None) – community detection algorithm, e.g., ‘louvain’ or ‘community_multilevel’
community_params (Dict[str, Any] | None) – parameters for community detection algorithm
same_community_weight (float) – weight for edges connecting nodes in the same community
cross_community_weight (float) – weight for edges connecting nodes in different communities
edge_influence (float) – influence of edge weights on layout
engine (EngineAbstract) – graph engine, e.g., ‘pandas’, ‘cudf’, ‘auto’. CPU uses igraph algorithms, and GPU, cugraph
- Returns:
graph with layout
- Return type:
Example: Basic
g = g.modularity_weighted_layout() g.plot()
Example: Use existing community labels
assert 'my_community' in g._nodes.columns g = g.modularity_weighted_layout(community_col='my_community') g.plot()
Example: Use GPU-accelerated Louvain algorithm
g = g.modularity_weighted_layout(community_alg='louvain', engine='cudf') g = g.modularity_weighted_layout(community_alg='community_multilevel', engine='pandas')
Example: Use custom layout settings
g = g.modularity_weighted_layout( community_col='community', same_community_weight=2.0, cross_community_weight=0.3, edge_influence=2.0 ) g.plot()