Skip to guide content

Create, edit, and save your graph

Follow the diagrams to import, edit, arrange, and save a graph.

Make your first graph

Choose a starting point that fits what you have.

Detailed steps and notes

Start from data

  1. Open Start from data or Load.
  2. Paste the text and check the preview.
  3. Choose Apply to graph to load it onto the canvas.

Choose a sample

  1. Open Choose a sample.
  2. Pick a graph and adjust its parameters, if available.
  3. Apply it, then edit its nodes and edges.

Draw your own

  1. Choose Draw your own to enter Node mode.
  2. Click empty spots to place nodes.
  3. Switch to Edge and select two nodes in order.

See how your input becomes a graph

Set Undirected and 1-indexed. Copy an example, paste it into Load, then apply.

Draw a graph from an edge list

Input to copy

4 4
1 2
2 3
2 4
3 4

Graph diagram

4 vertices and 4 edges: 1–2, 2–3, 2–4, and 3–4.
Detailed steps and notes

Choose Undirected and 1-indexed in Settings, copy a complete code block into Load, then choose Apply to graph. The diagrams show connectivity; positions depend on the layout you select.

Choose “edge list with counts” in Format. The first line, 4 4, gives the vertex and edge counts. Each following line connects two vertices.

4 vertices and 4 edges: 1–2, 2–3, 2–4, and 3–4.

Convert an adjacency matrix to a graph

Input to copy

0 1 1
1 0 1
1 1 0

Graph diagram

3 vertices and 3 edges form a triangle, with every pair connected.
Detailed steps and notes

Choose Undirected and 1-indexed in Settings, copy a complete code block into Load, then choose Apply to graph. The diagrams show connectivity; positions depend on the layout you select.

Choose adjacency matrix. Rows and columns represent vertices; 1 means an edge and 0 means no edge. This symmetric matrix describes an undirected graph.

3 vertices and 3 edges form a triangle, with every pair connected.

Visualize a weighted tree

Input to copy

4 3
1 2 5
1 3 2
3 4 7

Graph diagram

A tree with 4 vertices and 3 edges: 1–2 has weight 5, 1–3 has weight 2, and 3–4 has weight 7.
Detailed steps and notes

Choose Undirected and 1-indexed in Settings, copy a complete code block into Load, then choose Apply to graph. The diagrams show connectivity; positions depend on the layout you select.

Choose “edge list with counts” in Format. The third column is the edge weight. After importing, select the tree layout to see the hierarchy.

A tree with 4 vertices and 3 edges: 1–2 has weight 5, 1–3 has weight 2, and 3–4 has weight 7.

Load text or a file

Check the format and node count before replacing your graph.

Paste the input
Check the preview
Apply to the graph
Detailed steps and notes
  1. Open Load

    Paste your text, or choose Open file to select a text file or a Graph Editor JSON document.

  2. Check the format and preview

    The editor detects the format. If several interpretations are possible, choose one in Format. It also infers whether numbering starts at 0 or 1, so check the node labels.

  3. Choose Apply to graph

    This replaces the current graph with the previewed result. Review any warnings before applying. Undo restores the graph from before the import.

All supported input formats
Edge list with N M header
4 4
1 2
2 3
2 4
3 4
Edge pairs (no header)
1 2
2 3
Tree edge list (N, then N−1 edges)
4
1 2
1 3
3 4
Parent list
4
1 1 3
Weighted parent list
4
1 5
1 3
3 2
Adjacency list
1: 2 3
2: 4
Adjacency matrix
0 1 1
1 0 1
1 1 0
Graph Editor JSON (empty graph)
{
  "version": 1,
  "nodes": [],
  "edges": [],
  "settings": {}
}

Place nodes and connect them

Use the three toolbar modes for different tasks.

Place points in Node mode
Choose two points in Edge mode
Drag in Select mode
Detailed steps and notes
  1. Place a node with Node

    Click or tap an empty spot on the canvas to add a node. Press N to switch to this mode.

  2. Connect two nodes with Edge

    Select the source, then the target. In a directed graph, the arrow follows that order. Click empty space or press Esc to cancel a connection in progress.

  3. Adjust positions with Select

    Drag a node to move it or an edge to bend it. Select a node or edge to open the action bar for editing or deleting it.

  • To select a group, hold Shift and drag in Select mode. The arrow beside Select chooses All, Nodes only, or Edges only for box selection.
  • Ctrl (⌘ on Mac) + Shift + drag selects nodes only. Ctrl (⌘ on Mac) + Alt + drag selects edges only.
  • Double-click or select an element and press Enter to edit its label or weight. Right-click opens its edit menu.

Change colors, labels, and graph settings

Highlight part of the graph and adjust its numbering and arrows.

Change a selected node's color
Double-click to edit a label
Choose Directed in Settings
Detailed steps and notes
  • Select nodes or edges, then choose a color in the action bar. This also works with multiple elements selected. Press C to cycle their colors.
  • Settings switches between directed and undirected graphs, weighted and unweighted edges, and 0-indexed and 1-indexed numbering. It also controls arrow size and node-label visibility.
  • Select directed edges to Reverse their direction, or use Reverse all edges in Settings to change the whole graph.
  • After bending an edge, choose Return to automatic routing to restore its automatic path. The right-click menu also offers Bend left and Bend right.
  • Enable Snap drags to grid in Settings to align nodes while moving them.

Try a sample and choose a layout

Change where nodes sit while keeping their connections.

Choose a sample
Choose a layout
Rearrange the same connections
Detailed steps and notes

In Load, choose Use a sample to pick a tree, cycle, grid, or another graph. Search by name or filter by category. For samples with parameters, adjust values such as the node count before applying.

Open Layout (L) to rearrange a graph. Start with Auto layout, or try Circle and Grid to compare simple arrangements.

  • Use Tree for a tree or forest, DAG for a directed acyclic graph, and Bipartite for a bipartite graph. A layout is disabled when its requirements are not met; its tooltip explains why.
  • BFS layers groups nodes by distance from a starting node; Radial arranges distance layers in circles. Select one node first to use it as the starting node, or as the root for Tree.
  • SCC groups nodes of a directed graph by strongly connected component. Line, Concentric, and Resolve overlap offer other arrangements.
  • Offset overlapping edges bends edges automatically to avoid nodes where possible. If overlaps remain, move the nodes or bend individual edges by hand.

Choose an export for your next step

Use JSON to keep editing your graph and PNG to share a diagram.

JSON: edit again later
PNG: share the diagram
Text: connection data
TikZ: use in TeX
Detailed steps and notes
  1. Save for editing with JSON

    In Export, choose JSON as the format and save the .json file. It preserves nodes, edges, labels, positions, colors, bends, and graph settings. Open it through Load to resume editing.

  2. Share an image with PNG

    Open PNG, choose the whole graph or current view, and set the background and padding. For the whole graph, choose a long-edge size, the current zoom, or a fixed canvas. Check the preview, then save or copy.

  3. Use connection data as text

    In Export, choose Edge list, Adjacency list, or Adjacency matrix. These formats omit positions, colors, and manual bends; custom labels may be replaced with consecutive numbers. If a format cannot represent your edges or weights, choose JSON or a compatible edge list.

  4. Include a diagram in TeX with TikZ

    Choose TikZ (TeX), then copy the code or save a .tex file. Add the packages listed in the opening comments. Japanese labels need LuaLaTeX and luatexja; other Unicode labels need an appropriate engine and fonts.

Work with the keyboard

These shortcuts control the canvas when you are not typing into a field.

Select / Node / Edge mode
VNE
Clear selection or cancel drawing an edge
Esc
Delete selected elements
DeleteBackspace
Undo
Ctrl+Z⌘Z
Redo
Ctrl+Shift+Z⌘⇧ZCtrl+Y
Select all
Ctrl+A⌘A
Copy / cut / paste a selection
Ctrl / ⌘ + C / X / V
Edit a label or weight
Enter
Cycle selected colors
C
Nudge selected nodes
← ↑ → ↓
Move selected nodes by a larger step
Shift + ← ↑ → ↓
Fit the whole graph to view
Shift+1
Reset zoom to 100%
Ctrl+0⌘0
Layout / Settings / shortcut list
L,?
Detailed steps and notes

Use Ctrl on Windows and Linux, and ⌘ on Mac.

Move the view and work on a phone

Move the visible area without changing node positions.

Drag empty space to pan
Pinch with two fingers to zoom
Fit the graph back into view
Detailed steps and notes
  • Drag empty canvas to pan the view. On a phone, use two fingers to zoom and move the view.
  • In Node, tap empty space to add a node. In Edge, tap two nodes in order to connect them.
  • In Select, tap a node or edge and use the action bar to change its color, edit its label, or delete it. Drag nodes to move them and edges to bend them.
  • If your graph moves off screen, use Fit graph to view. With a keyboard, Shift+1 fits the whole graph.

When something does not work

Check these points for input, saving, and display problems.

Why does my input produce a different graph?

Choose the format explicitly, then check the counts in the first line, the number of columns, and whether numbering starts at 0 or 1. Review warnings and the preview before applying. Change directed or undirected in Settings if needed.

Draw a graph from an edge list
Where is my graph saved?

The graph is stored locally in this browser; its contents are not sent to a server. It does not sync to another browser or device. Clearing this site's data removes the saved graph, so export important work as JSON for backup.

What should I do if autosave fails or another tab changes the graph?

Your current work stays on screen. First choose Save my graph to download a JSON backup. For a failed save, choose Retry; for a conflict, review the other document before choosing Use the other tab's graph. If autosave is unavailable, keep saving JSON files.

How large can a graph be?

The limit is 1,000 nodes and 5,000 edges, with up to 256 characters per label or other text field. Text input accepts up to 1,000,000 characters and JSON up to 2,000,000. Some layouts are disabled for large graphs, and automatic routing or overlap resolution may leave overlaps to adjust by hand.

What if copying an image or text fails?

Browser clipboard permissions can prevent copying. Save the PNG or download the text as a file instead. If an export format cannot represent the graph, choose a compatible format such as JSON.

What if I cannot see the graph?

If it is off screen, fit the graph to view. If a display error appears, save a JSON backup and choose Retry. A failed sample load can also be retried, or you can return to Paste and continue working.

Do I need to pay or create an account?

It is free and requires no account. The source code is available on GitHub.