All Projects → xiaoxiae → Grafatko

xiaoxiae / Grafatko

Licence: GPL-3.0 license
An app for creating and visualizing graphs and graph-related algorithms.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Grafatko

Graphs.jl
An optimized graphs package for the Julia programming language
Stars: ✭ 197 (+795.45%)
Mutual labels:  graph-algorithms, graph-theory
Modal logic
Final Year Masters Project: modal logic solver tableaux
Stars: ✭ 16 (-27.27%)
Mutual labels:  graph-algorithms, graph-theory
everystreet
An algorithm finding #everystreet route on Open Street Map (OSMnx)
Stars: ✭ 43 (+95.45%)
Mutual labels:  graph-algorithms, graph-theory
Graph-Algorithms
Everything you need to know about graph theory to ace a technical interview 🔥
Stars: ✭ 87 (+295.45%)
Mutual labels:  graph-algorithms, graph-theory
Libgrape Lite
🍇 A C++ library for parallel graph processing 🍇
Stars: ✭ 169 (+668.18%)
Mutual labels:  graph-algorithms, graph-theory
grblas
Python wrapper around GraphBLAS
Stars: ✭ 22 (+0%)
Mutual labels:  graph-algorithms, graph-theory
Lightgraphs.jl
An optimized graphs package for the Julia programming language
Stars: ✭ 611 (+2677.27%)
Mutual labels:  graph-algorithms, graph-theory
jgrapht
Master repository for the JGraphT project
Stars: ✭ 2,259 (+10168.18%)
Mutual labels:  graph-algorithms, graph-theory
Erdos
modular and modern graph-theory algorithms framework in Java
Stars: ✭ 104 (+372.73%)
Mutual labels:  graph-algorithms, graph-theory
D3graphtheory
💥 Interactive and colorful 🎨 graph theory tutorials made using d3.js ⚡️
Stars: ✭ 1,364 (+6100%)
Mutual labels:  graph-algorithms, graph-theory
kaliningraph
🕸️ Graphs, finite fields and discrete dynamical systems in Kotlin
Stars: ✭ 62 (+181.82%)
Mutual labels:  graph-algorithms, graph-theory
common-algorithms-js
Common algorithms implemented in JavaScript.
Stars: ✭ 34 (+54.55%)
Mutual labels:  computer-science, graph-algorithms
Differentia.js
No longer being supported or maintained. A Graph Theory & Data Structure Library for JavaScript.
Stars: ✭ 13 (-40.91%)
Mutual labels:  graph-algorithms, graph-theory
LightGraphs.jl
An optimized graphs package for the Julia programming language
Stars: ✭ 680 (+2990.91%)
Mutual labels:  graph-algorithms, graph-theory
networkx-guide
We here are very big fans of NetworkX as a graph library and its comprehensive set of graph algorithms. For many though, working with NetworkX involves a steep learning curve. This guide is designed as an aid for beginners and experienced users to find specific tips and explore the world of complex networks.
Stars: ✭ 28 (+27.27%)
Mutual labels:  graph-algorithms, graph-theory
Graph
Graph algorithms and data structures
Stars: ✭ 431 (+1859.09%)
Mutual labels:  graph-algorithms, graph-theory
graphs
Graph algorithms written in Go
Stars: ✭ 60 (+172.73%)
Mutual labels:  graph-algorithms, graph-theory
jsgraph
Deprecated: Use the @encapsule/arccore package that includes the graph library
Stars: ✭ 42 (+90.91%)
Mutual labels:  graph-algorithms, graph-theory
Networkx
Network Analysis in Python
Stars: ✭ 10,057 (+45613.64%)
Mutual labels:  graph-algorithms, graph-theory
Algorithms-Java
A collection of common algorithms and data structures implemented in Java.
Stars: ✭ 141 (+540.91%)
Mutual labels:  computer-science, graph-algorithms

Grafátko [gɾafɑtko]

An app for creating and visualizing graphs and graph-related algorithms.

Running Grafátko

First, install the app by running pip install grafatko. Then you can simply run the grafatko command from a terminal of your choice.


Another way to run Grafátko (albeit a little more difficult) is to first clone the repository, go to the base directory and run the project as a Python module:

xiaoxiae@thinkpad ~> git clone https://github.com/xiaoxiae/Grafatko.git
xiaoxiae@thinkpad ~> cd Grafatko/
xiaoxiae@thinkpad ~> pip install -r requirements.txt
xiaoxiae@thinkpad ~> python -m grafatko.__init__

Controls

Mouse

  • right button creates new nodes/vertices
    • + shift doesn't deselect the currently selected nodes:
  • left button selects and drags nodes/vertices around the screen
    • if held, drags nodes along with the mouse
    • + shift toggles selection on nodes/vertices
      • if held, moves the entire graph component
  • middle button pans
  • mouse wheel zooms
    • + shift rotates nodes about the currently selected ones

Keyboard

  • r toggles 'tree mode' for smoother visualisation of trees
    • essentially applies special forces on the nodes to group them by distance from the currently selected node
    • only works if a single node is selected
  • space centers on the currently selected nodes
  • delete deletes the currently selected items

Other

  • complement -- makes the graph complemented
  • reorinet -- changes the directions of the vertices of the graph

Visualizing algorithms

The app allows for visualising custom algorithms on the currently edited graph. Examples of valid programs can be found in the examples/ folder.

After creating a graph, you can go to Algorithms -> Run and select the one you want to run on the graph. The program then calls a function with the same name as the file, the only parameter being the DrawableGraph object to run the algorithm on.

When the animation is running, you can use the pause, resume and clear to control it.

Importing/exporting graphs

The app uses a simple text-based format for importing and exporting graph. Each line of the file the format n1 [direction] n2 [weight], where:

  • n1 and n2 are labels of the nodes forming the vertex, containing no whitespace characters
  • [direction] is used in directed graphs and is either -> or <-
  • [weight] is used in weighted graphs, denotes the weight of the vertex (either int or float)

Examples of valid graphs can be found in the examples/ folder.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].