Graphical interface for Graphiz for Mac OS? - macos

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.

Related

Procedurally generated GUI

I've developed an interactive audio visualization engine. I need to make its GUI scalable to various screen sizes with various PPIs (this includes both very large screens and mobile devices). Designer simply sent me a PSD with graphical representation of supported widgets. I'm exporting these into PNGs. The problem is that those bitmaps are of course not scalable and looks ugly.
I've thought about several ways how to achieve resolution and PPI independent GUI:
Export PNGs with various sizes and select the current set on runtime (waste of space simply for storing bitmaps in various resolutions)
Use scale 9 images only (no fancy stuff)
Use SVG (not supported by rendering APIs, could use smth like nanovg for OpenGL but what to do with raw framebuffer then?, also performance problems and too much complexity for what I need)
I came to an idea to pregenerate bitmaps at runtime for specific device once and use them afterwards. Are there any specific libraries for that and maybe already available themes which I could employ for now? I imagine tool could work similarly to how cairo graphics library or javascript canvas work by reading command list and outputting a bitmap. Any other ideas?
One possible solution is this:
CPlayer is a procedural graphics player with an IMGUI toolkit. It can
be used for anything from quick demos, prototyping graphics apps, to
full-fledged apps and games.
http://luapower.com/cplayer.html

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.

Algorithm to detect presence of text on image

With my new assignment I am looking for a method to detect the presence of text on image. The image is a map - can be for example google map. The task is to detect where the street/city label is placed.
I know that opencv library has algorithm that can detect features (for example human faces) - haar classifier or hog (histogram of oriented gradients), but I heard that learning process of such algorithms is quite difficult.
Do you know of any algorithm, method or a library that could do that (detect presence of text on image)?
Thanks,
John
There is a standard problem in vision called text detection in images. it is quite different to OCR. OCR concerms itself with what it says, while text detection is about determining if there is text in the image. Adi Shavit's third link is a method to address this problem. You can look on google scholar well cited articles on text detection.
There are several possible approaches you can take.
Use OCR. A search for OCR on Stackoverflow will show many options. These include Tesseract and Ocropus.
If your text uses very specific fixed font, you may get away with simple template matching.
In the more general case you might want to take a look at "Detecting Text in Natural Scenes with Stroke Width Transform"
UPDATE Jan. 2017
The OpenCV 3.2 contrib module now has a text detection module.
It also includes a sample (C++, Python) of how to use it.
You need to tune this to a specific type of map images, or the problem is going to be very difficult (see the previous post about links to articles).
OCR is the way to go, and you should use an existing library. However, OCR is mainly done on text on white backgrounds. To reduce your problem to a regular OCR problem, you should attempt to work on the color space of the map. Likely the map text has a very specific color and this may be enough to find these pixels. You can then filter the detected pixels based on the size of connected regions.
If you literally only want to find the locations of text labels, you can do the above, and pretty much just skip the OCR step. If the labels are not too close, simple clustering algorithms can be used to find their respective positions.

GUI editor for DOT language (Mac OS)

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.

Generating Professional Graphs In Windows

In Windows, I am looking at generating professional graphs using any mainstream programming language (C#, VB.Net, Java, PERL, etc). The best free looking graphs I have found so far is Microsoft Chart Controls for .NET. What other graph controls/modules do you suggest?
Note: Added free to the requirements.
GLE is a scripting language designed for generating professional quality graphs and diagrams for publication. It uses LaTeX for typesetting, so including equations in your graphs is a snap and they look great. Christopher Bishop used GLE for all the diagrams in his textbook, "Pattern Recognition and Machine Learning," and let me tell you, they looked great. Open-source to boot!
First you write the GLE script and tell it to accept a text file as the graph input data. Then, you can generate the data set in whatever language you want, export as a text file, and call the GLE script to generate the graph.
More info from the website:
GLE (Graphics Layout Engine) is a graphics scripting language designed for creating publication quality graphs, plots, diagrams, figures and slides. GLE supports various graph types (function plots, histograms, bar graphs, scatter plots, contour lines, color maps, surface plots, ...) ... GLE's output formats include EPS, PS, PDF, JPEG, and PNG.
jFreeChart is [one of] the best solution[s] out there for Java. I totally recommend it.
Have you seen Zedgraph?. It is LGPL, but rather extensive.
There are dozens and dozens of commercial charting components out there. Personally, I like the DevExpress tools.
XtraCharts is really good, well documented and relatively affordable.

Resources