apply_ring_categorical_layout
Organize graph nodes into concentric rings based on categorical attributes to visualize relationships by group membership.
Instructions
Apply a categorical ring layout to the graph using Graphistry's ring_categorical_layout API.
Args:
graph_id (str): The ID of the graph to modify.
ring_col (str): The node column to use for determining ring membership (e.g., a categorical attribute like 'type' or 'group').
Returns:
dict: { 'graph_id': ..., 'url': ... } with the updated visualization URL.
Example:
apply_ring_categorical_layout(graph_id, ring_col='type')
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| graph_id | Yes | ||
| ring_col | Yes |
Implementation Reference
- The handler function for the 'apply_ring_categorical_layout' tool. It is registered via the @mcp.tool() decorator and implements the core logic by calling Graphistry's ring_categorical_layout method on the cached graph object.@mcp.tool() async def apply_ring_categorical_layout(graph_id: str, ring_col: str) -> Dict[str, Any]: """ Apply a categorical ring layout to the graph using Graphistry's ring_categorical_layout API. Args: graph_id (str): The ID of the graph to modify. ring_col (str): The node column to use for determining ring membership (e.g., a categorical attribute like 'type' or 'group'). Returns: dict: { 'graph_id': ..., 'url': ... } with the updated visualization URL. Example: apply_ring_categorical_layout(graph_id, ring_col='type') """ if graph_id not in graph_cache: raise ValueError(f"Graph not found: {graph_id}") g = graph_cache[graph_id]["graph"] g = g.ring_categorical_layout(ring_col) graph_cache[graph_id]["graph"] = g return {"graph_id": graph_id, "url": g.plot(render=False)}