All Projects → jackrusher → arrowic

jackrusher / arrowic

Licence: EPL-1.0 License
Quick and dirty directed graph viewer for REPL explorations.

Programming Languages

clojure
4091 projects

Labels

Projects that are alternatives of or similar to arrowic

Git Deps
git commit dependency analysis tool
Stars: ✭ 232 (+1446.67%)
Mutual labels:  graph
Graph Data Science
Source code for the Neo4j Graph Data Science library of graph algorithms.
Stars: ✭ 251 (+1573.33%)
Mutual labels:  graph
agda
The theory of algebraic graphs formalised in Agda
Stars: ✭ 67 (+346.67%)
Mutual labels:  graph
Graphnn
Training computational graph on top of structured data (string, graph, etc)
Stars: ✭ 235 (+1466.67%)
Mutual labels:  graph
Astgcn
⚠️[Deprecated] no longer maintained, please use the code in https://github.com/guoshnBJTU/ASTGCN-r-pytorch
Stars: ✭ 246 (+1540%)
Mutual labels:  graph
racket-graphviz
Library to enable using graphviz in Racket programs
Stars: ✭ 20 (+33.33%)
Mutual labels:  graph
Multigraph transformer
transformer, multi-graph transformer, graph, graph classification, sketch recognition, sketch classification, free-hand sketch, official code of the paper "Multi-Graph Transformer for Free-Hand Sketch Recognition"
Stars: ✭ 231 (+1440%)
Mutual labels:  graph
graph
Generic graph library and algorithms for Racket.
Stars: ✭ 53 (+253.33%)
Mutual labels:  graph
Clchart
A fast, simple and cross-platform(html5 react-native weex wechat-applet) stock chart library created using canvas.
Stars: ✭ 250 (+1566.67%)
Mutual labels:  graph
ux-charts
Simple, responsive, modern Charts with zero dependencies
Stars: ✭ 22 (+46.67%)
Mutual labels:  graph
Msgraph Sdk Powershell
Powershell SDK for Microsoft Graph
Stars: ✭ 239 (+1493.33%)
Mutual labels:  graph
P2p Graph
Real-time P2P network visualization with D3
Stars: ✭ 245 (+1533.33%)
Mutual labels:  graph
cl-covid19
Explore COVID-19 data with Common Lisp, gnuplot, SQL and Grafana
Stars: ✭ 51 (+240%)
Mutual labels:  graph
Spectral Trajectory And Behavior Prediction
This is the code base for Trajectory and Driver Behavior Prediction in Autonomous Vehicles using Spectral Graph Theory
Stars: ✭ 236 (+1473.33%)
Mutual labels:  graph
parallel-dfs-dag
A parallel implementation of DFS for Directed Acyclic Graphs (https://research.nvidia.com/publication/parallel-depth-first-search-directed-acyclic-graphs)
Stars: ✭ 29 (+93.33%)
Mutual labels:  graph
Nodeeditorwinforms
Node based user control / editor for Windows Forms
Stars: ✭ 232 (+1446.67%)
Mutual labels:  graph
Chart.js
Simple HTML5 Charts using the <canvas> tag
Stars: ✭ 55,646 (+370873.33%)
Mutual labels:  graph
nodify
High performance and modular controls for node-based editors designed for data-binding and MVVM.
Stars: ✭ 282 (+1780%)
Mutual labels:  graph
gun-scape
GunDB Cytoscape Graph Visualizer + Live Editor
Stars: ✭ 49 (+226.67%)
Mutual labels:  graph
purescript-d3-tagless-II
Tagless final style interpreter / wrapper for D3 in PureScript, latest of many re-writes
Stars: ✭ 28 (+86.67%)
Mutual labels:  graph

'Arrowic

O frabjous day! Callooh! Callay! Yet another tiny, incomplete clojure wrapper around a Java library!

In this case, the simplest directed graph viewer possible for those situation where you are in the process of interrogating some data and would like to how it looks as boxes and arrows.

I love graphviz as much as the next former-AT&T Research employee, but it's also rather nice to be able to generate an interactive graph layout from within emacs (or whatever your REPL of choice), tinker with it by hand, then export it to SVG.

The default graph style looks like this. There is also a rather large collection of styling options that are currently undocumented. See the arrowic.style namespace to get some idea of how to use styles.

If you’re building a Swing application (hopefully using seesaw), you can create a Swing component to display your graph using the as-swing-component function.

Usage

[arrowic "0.1.1"]

A new empty graph is created using create-graph. The graph thus created can then be mutated in place inside of a with-graph form using insert-vertex! and insert-edge!.

(use '[arrowic.core])

;; grab some words from the UNIX dictionary
(def words
  (into [] (clojure.string/split-lines (slurp "/usr/share/dict/words"))))

;; make a random graph full of words
(defn random-graph []
  (with-graph (create-graph)
    (let [vertices (repeatedly 10 #(insert-vertex! (rand-nth words)))]
      (doseq [edge-label (repeatedly 20 #(rand-nth words))]
        (insert-edge! (rand-nth vertices) 
                      (rand-nth vertices)
                      :label edge-label)))))

(def graph (random-graph))

(def viewer (create-viewer graph))

(def another-graph (random-graph))

;; can change the currently viewed graph this way:
(view viewer another-graph)

;; export a graph to SVG
(spit "example.svg" (as-svg another-graph))

License

Copyright © 2018 Jack Rusher

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

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].