Which graph should I use?¶
Understand offers dozens of graphs — for a single entity, an architecture, or the whole project. This page maps the question you're asking to the graph that answers it. Once you've picked one, open it. See the graph catalog for the full list of graphs.
Start from your question¶
| You're asking… | Use | Notes |
|---|---|---|
| Who calls this function? | Called By | The upstream call tree. |
| What does this function call? | Calls | The downstream call tree. |
| Both callers and callees at once? | Butterfly | Callers on one side, callees on the other. |
| How does this function branch — what's its logic? | Control Flow | Statements and decisions as a flowchart. |
| What's the class hierarchy? | UML Class Diagram | Inheritance and members. For just up/down inheritance, use Base Classes / Derived Classes. |
| How do objects interact over time? | UML Sequence Diagram | Call/message order down the page. |
| How does data reach (or leave) a variable? | Data Flow In / Data Flow Out | Traces values into / out of an object. |
| Where is this object set, used, or referenced? | Object References | All read/write/reference sites. |
| How is one variable read and written across the code? | Variable Tracker | Follows a single variable's reads/writes. |
| What does this file (or architecture) depend on? | Depends On | Outgoing dependencies. |
| What depends on this file (or architecture)? | Depended On By | Incoming dependencies. |
| What breaks my architecture's rules? | Dependency Violation Graph | Only the edges that violate a dependency rule; opened from the Dependency Violations panel rather than the right-click menu. |
Not sure what to start on?
Most graphs are offered per entity or architecture — right-click one and the menu only lists graphs that make sense for what you clicked: a function for call/control-flow graphs, an object/variable for data-flow and reference graphs, a class for UML, and a file or architecture for dependency graphs. For a project-wide view instead — dependencies, UML, or a saved graph — use the Graphs menu; see open a graph.
Then pick a variant¶
Once you've opened a graph, switch variants to adjust the view — group nodes into clusters, compare two versions, or restrict the scope — without starting over.
Still not enough?¶
If no built-in graph frames the data the way you need, you can write your own graph plugin in Python.