Questions tagged [neato]

Neato is a program in the graphviz toolkit for generating visual layouts of undirected graphs. Its layout heuristic creates virtual physical models and runs an iterative solver to find low energy configurations. Neato has a wide variety of uses, but its intended applications are in telecommunication networks, computer programming and software engineering.

From the NEATO User's manual...

NEATO is a utility that draws undirected graphs, which are common in telecommunications and computer programming. It draws a graph by constructing a virtual physical model and running an iterative solver to find a low-energy configuration. Following an approach proposed by Kamada and Kawai [KK89], an ideal spring is placed between every pair of nodes such that its length is set to the shortest path distance between the endpoints. The springs push the nodes so their geometric distance in the layout approximates their path distance in the graph. This often yields reasonable layouts [Ead84][FR91]. (In statistics, this algorithm is also known as multidimensional scaling. Its application to graph drawing was noted by Kruskal and Seery in the late 1970s.)

NEATO is compatible with the directed graph drawing program DOT in sharing the same input file format and graphics drivers [KN91]. Since the file format includes both undirected and directed graphs, NEATO draws graphs prepared for DOT, and vice versa. Both programs have the same options for setting labels, colors, shapes, text fonts, and pagination, and for generating code in common graphics languages (PostScript, raster formats such as GIF and PNG, SVG, FrameMaker MIF, HPGL/2, and web click maps). Both work with DOTTY, an interactive graph viewer for X windows. (The lneato command script runs neato from an interactive window.)

56 questions
44
votes
2 answers

Prevent overlapping records using graphviz and neato

I am building a dot file to represent computer hardware and the physical connections to a network switch and displays. I have it looking ok when processed by the dot program but I think I really want it processed by neato to create a more "free…
Chris Williams
  • 493
  • 1
  • 4
  • 6
41
votes
2 answers

Hidden edges in Graphviz

I'm trying to create a graph using Graphviz (complied with neato), and I would like to place nodes in specific locations. For this, I'm specifying exact edge lengths for all edges. However, I don't want all edges to be visible in the final image.…
Dana
  • 2,619
  • 5
  • 31
  • 45
18
votes
2 answers

How to avoid overlapping nodes in graphviz?

I am trying to draw a graph with many nodes and edges. However, the graph is becoming too clumsy, with nodes and edges overlapping. I tried (unsuccessfully), the following, all or combinations of these. size = "12.0, 20.0!"; margin = 0.0; len =…
Masroor
  • 886
  • 1
  • 8
  • 23
13
votes
3 answers

How can I make DOT/neato graphs more compact without introducing overlap?

My question is essentially the same as this one but the given answer doesn't work for me. Here is a sample rendering (source) with compound=true; overlap=scalexy; splines=true; layout=neato; There is some unnecessary overlap in the edges but this…
spraff
  • 32,570
  • 22
  • 121
  • 229
12
votes
3 answers

How to increase space between edges (splines) and nodes in graphviz?

I manually specified the starting position of every node and set splines=true. The resulting image appears as follows: The spline between 1031 and 1028 appears to touch nodes 1030 and 1029. I am just wondering if there's a way to increase the…
Dan Q
  • 2,227
  • 3
  • 25
  • 36
12
votes
2 answers

How to deal with densely connected graphs with neato

I have the following dot/neato file... graph G { node [color=Red] r01 r02 r03 r04 r05 r06 r07 r08 r09 r10 r11 node [color=Blue] p01 p02 p03 p04 p05 p06 p07 p08 p09 p10 p11 p12 p13 …
Daniel Standage
  • 8,136
  • 19
  • 69
  • 116
12
votes
1 answer

How to set the 'spring' force with graphviz for compact graph layouts

I'm generating diagram with graphviz and I have a problem - there are several nodes that are very large - and large number of small nodes. I tried generating png with neato and fdp but both generate very large graphics, which are mostly blank (nodes…
Marcin Raczkowski
  • 1,500
  • 1
  • 18
  • 26
11
votes
5 answers

How to run neato from pygraphviz on Windows

I am trying to use pygraphviz and networkx in python (v 2.7) to create a network map. I found a script that looks very useful on stackoverflow: import networkx as nx import numpy as np import string import pygraphviz dt = [('len', float)] A =…
Amlanza
  • 119
  • 1
  • 1
  • 3
10
votes
2 answers

Graphviz: Distance between edge and by passed nodes with neato

Layout engine is neato. I would like to have some more space between the arrow from a to c and the node b. margin and pad don't help with neato. This is my graph: digraph G { splines=true a [pos="0.0,0.0!"]; b [pos="0.0,1.0!"]; c…
Mike M
  • 2,263
  • 3
  • 17
  • 31
8
votes
1 answer

How to set bend direction for edges with splines="curved" in GraphViz? (using neato)

I am creating a graph with manually positioned nodes and use the splines="curved" type of edges between them. digraph graphname { splines="curved"; node[shape = box, margin="0.03,0.03", fontsize=11, height=0.1, width=0.1, fixedsize=false]; …
ChrisM
  • 1,114
  • 1
  • 7
  • 18
7
votes
2 answers

Simple linear arrangement in graphviz

I want to generate simple linear arrangements like this: I think I am making this way too hard. I tried just hard coding the positions, but it is a little more complicated because I want splined edges. I don't particularly care if the edges are…
Chad Brewbaker
  • 2,523
  • 2
  • 19
  • 26
6
votes
2 answers

Padding between cluster boundaries and nodes when using Graphviz and neato

I want to generate the following graph in Graphviz: For reasons explained here, this: digraph { layout=dot; rankdir="LR"; overlap = true; node[shape=record, height="0.4", width="0.4"]; edge[dir=none]; A; B; C; D; E; F; G; H; I; …
Warren Blumenow
  • 673
  • 2
  • 11
  • 17
6
votes
3 answers

How can I create named edge "types" in Graphviz/dot/neato?

I need to draw a diagram with graphviz/dot where there are common edge types between nodes and am trying to find a way to define a label for each type of edge and then use that label multiple times in the diagram. For example imagine the…
Ed Morton
  • 188,023
  • 17
  • 78
  • 185
5
votes
2 answers

Set node direction on graphviz

Suppose this code using neato: graph sample { layout=neato overlap=false splines=true tailclip=false headclip=false A -- I A -- J A -- B A -- H A -- E A -- K B -- D B -- C B -- L C -- M C -- N C -- O D -- P D --…
pablasso
  • 2,479
  • 2
  • 26
  • 32
3
votes
0 answers

Draw an aligned edge

Considering the following graph: digraph { node[shape=square style=filled]; A [color=olivedrab4 fillcolor=olivedrab3]; B [color=orange3 fillcolor=orange]; C [color=royalblue4 fillcolor=royalblue]; D [color=orangered3 …
sschober
  • 2,003
  • 3
  • 24
  • 38
1
2 3 4