GUI editor for DOT language (Mac OS) - user-interface

i have a problem. I need to create pure diagram for my project (Django).
I use django-extensions to generate DOT diagram. Diagram is very pure, but now i want to add for example comments on this diagram.
It is possible to do this?
Maybe anyone can advise me some software for this?

There is an OS X version of graphviz, though I haven't used it in years so can't vouch whether it can annotate diagrams.

You can also use DiagramCreator (http://blog.chipp.com/diagramcreator-in-beta-get-yours-now/) in beta for Mac or give a chance to Leonhard (http://algorithmique.net/leonhard.html)

Graph Galaxy is a graph editor encourages an approach to editing graphs in WYSIWYG fashion. It provides an out-of-the-box environment to edit graphs, and supports to sketch graphs on canvas without thinking the DOT source code.

Related

python curve fitting optimization GUI

I'm new to programming but i have to do a project in python which is about to make a GUI for curve fitting. My inputs are the data points and the functions that should be fitted. The method of fitting is suggested to be chooseable for example least squares method or other fitting methods in the GUI. My problem is when i find some decent resource i get an error code when installing some packages that will be used. I use anaconda for python. My question is where should i start this project ? Could you guys suggest some decent resource for this kind of problem?
Thanks,
Adam
I have several of these done with different GUI frameworks, all have curve fitting and surface fitting with plots of fitted curves and surfaces. All have the same functionality, and should make a good example for a similar project. My personal recommendation is tkinter.
https://github.com/zunzun/tkInterFit (tkinter)
https://github.com/zunzun/wxPythonFit (wxpython)
https://github.com/zunzun/pyQt5Fit (pyqt5)
https://github.com/zunzun/pyGtkFit (pygtk)

interactive curve editor in OS X Cocoa

I am aiming to implement an editable spline or bezier curve for a GUI component in Cocoa OS X 10.6. The functionality could be along the line of the ichart RapahelJS demo http://raphaeljs.com/ichart.html or a typical "illustrator-type" handle on the curve points. Exact specification of the curve is somewhat malleable and can conform to what is available/simpler to implement.
So I am hoping to find a library or component that provides a solid basis, with the standard Cocoa patterns applied. I've looked at Core Plot, which seems great to actually plot data, but apparently does not offer interactive methods to modify a data array.
Am I missing something or must such a thing (including hit tests) be implemented from scratch in an NSView? Thanks.
You might like to check out DrawKit by Graham Cox. It's an extremely sophisticated framework and the sample app is amazing.
There is no Bezier path editor provided "free" as part of AppKit. Dave DeLong and I have been working on a bezier curve editor app called BezierBuilder which is available at GitHub. You may be able to pull out the BezierView class and some of its dependencies.
I wouldn't say the app's done by any stretch of the imagination; there are certainly things you'll want to change if you're integrating it into your own app. But it's a start, anyway.

Graph auto-layout algorithm

To simplify the problem, I have a graph that contains nodes and edges which are on a 2D plane.
What I want to be able to do is click a button and it make the automatically layout the graph to look clean. By that I mean minimal crossing of edges, nice space between nodes, maybe even represent the graph scale (weighted edges).
I know this is completely subjective of what is a clean looking graph, but does anyone know of an algorithm to start with, rather than reinventing the wheel?
Thanks.
You will find http://graphdrawing.org/ and this tutorial, by Roberto Tamassia, professor at Brown University, quite helpful.
I like a lot Force-Directed Techniques (pp. 66-72 in the tutorial) like the Spring Embedder.
You assume there is a spring or other force between any two adjacent nodes and let nature (simulation) do the work :)
I would suggest that you take a look at at graphviz. The dot program can take a specification of a graph and generate an image of the network for you somewhat "cleanly". I've linked to the "theory" page that gives you some links that might be relevant if you're interested in the theoretical background. The library and tools themselves are mature enough if you simply want a solution to a problem with layout that you're facing.
I would say as Noufal Ibrahim, but you could also look more precisely at the C API of the graphviz project. It includes a lib to build your graph (libgraph.pdf) with all the nodes and edges, and a lib to layout the graph (libgvc.pdf) (just compute each nodes position), so you can then display it in your own UI for example.
Also JGraph if you want the layouts in Java (I work on the project).
A good visual guide how the most popular layouts actually look: follow the link

What's the best way to "smudge" an image programmatically?

I'm messing around with image manipulation, mostly using Python. I'm not too worried about performance right now, as I'm just doing this for fun. Thus far, I can load bitmaps, merge them (according to some function), and do some REALLY crude analysis (find the brightest/darkest points, that kind of thing).
I'd like to be able to take an image, generate a set of control points (which I can more or less do now), and then smudge the image, starting at a control point and moving in a particular direction. What I'm not sure of is the process of smudging itself. What's a good algorithm for this?
This question is pretty old but I've recently gotten interested in this very subject so maybe this might be helpful to someone. I implemented a 'smudge' brush using Imagick for PHP which is roughly based on the smudging technique described in this paper. If you want to inspect the code feel free to have a look at the project: Magickpaint
Try PythonMagick (ImageMagick library bindings for Python). If you can't find it on your distribution's repositories, get it here: http://www.imagemagick.org/download/python/
It has more effect functions than you can shake a stick at.
One method would be to apply a Gaussian blur (or some other type of blur) to each point in the region defined by your control points.
One method would be to create a grid that your control points moves and then use texture mapping techniques to map the image back onto the distorted grid.
I can vouch for a Gaussian Blur mentioned above, it is quite simple to implement and provides a fairly decent blur result.
James

Graphical interface for Graphiz for Mac OS?

I installed the Graphviz GUI from pizelmap.com, but it appears to only be a viewer for .dot Graphviz files. I am looking for a graphical editor, where I can create diagrams by pointing and clicking--just like the iPhone app Instaviz.
I would rather not code graphs by hand.
Does anyone know of anything--preferably free?
Have you looked at the Mac port of Graphviz from the same people who do Instaviz? Otherwise, a not cost-free option is OmniGraffle which has been the graphical editor of choice on OS X for years; it uses Graphviz under the covers and understands .dot files. If you want to go hard-core, there's a port of the basic AT&T graphviz and some language wrappers available through MacPorts.
Graph Galaxy is an interactive program to edit graphs.
Graph Galaxy builds on top of the Graphviz, and provides an out-of-the-box environment to edit graphs. We are able to quickly sketch graphs on canvas without thinking the DOT source code. In addition, Graph Galaxy provides some features to help editing graphs for better experience:
Outline. The outline panel shows the table of contents, which gives us a quick insight about how the graphs are structured.
Import and Export. Graph Galaxy can read the .gv files, and export the graphs to various formats like PDF, SVG, JPEG, PNG, and DOT.
Table Editing. The elaborate table operations allow us to create a complex and irregular table easily.
Hand-Drawn. The stroke can be transformed to hand-drawn, which is useful for prototyping.

Resources