Large Graph Visualization Library - graph

I need to visualize a very large graph ( > 1 million ) in a website, the library should to receive a JSON and generate a png.
I've already tried graphviz with spfd but the waiting is too long, the user will not be able to interact with a GUI so Cytoscape or Gephi are not an option.
Another option could be maybe exporting a .dot to web, but I don't know how efficient this would be.

http://www.gnuplot.info/ and http://dygraphs.com/ are two of my favorite charting libraries for the web. Plotting a million data points I would probably use gnuplot. I would look at caching generated images as much as possible, perhaps even generating them in a batch rather than at the time of the request. I think you will run into performance issues trying to pass the data in via JSON and attempting to render the graph client side.

Related

Are there any packages available for streaming animations?

I have a device streaming data to the PC and I would like to use R to produce real-time streaming plots. I realize that Javascript is probably the best tool for this, but I don't have the skill set for reading data and plotting in Javascript.
I am aware of gganimate, gifski, etc. for animated gifs, but I don't think those will be able to stream data.
I have tried Shiny with invalidateLater and it works, but struggles to update faster than about 5 frames per second.
I have tried to run an R process to generate images on a timer and a simple html page that loads the image every 100 ms, but this produces frequent broken links when the html page is trying to load an image that R is actively writing.
Are there any other options in R that don't involve learning Javascript or Javascript packages? Any other general advice?

Blueprints plugin for Cytoscape, Gephi etc

I'm building UI to visualize and edit graph which is present in a gremlin store.
Which framework is better Cytoscape.js vs Gephi.js Vs other?
Do these frameworks have Blueprints plugin available? I want to avoid writing module to convert the gremlin output to the framework compatible format.
Please advice. Thanks.
Answer from the Cytoscape development team...
Well, there are a number of ways you can use Cytoscape with TinkerPop, but I would think that the best way would be to use the REST interface to Cytoscape and inject your graph directly into it. You could save your graph as a Neo4j database and use the Neo4j app to pull it into Cytoscape or save your graph as a GraphML or some other common graph format and read it in that way. Neither Cytoscape or Gephi are UI frameworks, though -- both are standalone applications that are designed to import, visualize, analyze and manipulate very large graphs.
A good place to start is on the Cytoscape Automation topic in the Cytoscape manual: http://manual.cytoscape.org/en/stable/Programmatic_Access_to_Cytoscape_Features_Scripting.html
No matter which library you use for graphs on the web, you're going to have to convert your model to the JSON format used by the library (e.g. the Cytoscape JSON format if you use Cytoscape desktop or Cytoscape.js).

Gephi automation: how to make multiple graphs at once

I am looking for a tool to automate making graphs with Gephi. I have dozens of similar graphs to prepare (only labels and figures in data differ), so need something able to automatically:
load nodes and edges from a file (e.g., csv)
set up layout (e.g., "type='force atlas 2', iterations=n, threads=m, scaling=p, gravity=q...")
apply selected laoyut
tune appearance (ranking: color, size)
export graph
I am aware of Gephi Toolkit, but it is for Java. Maybe there is some other way to automate Gephi? (or I will have to learn Java, which is not bad, but requires time)
I've also found Gephi Scripting Plugin, which is good but lacks some features, e.g. can't set up layout (only runs it with default settings).
Thanks in advance!
It is a bit tricky and haven't tried myself but if you don't want to get your feet wet with Java then you could try one of the automation frameworks that allow you to control a GUI application, e.g. Robot, PyAutoGUI or if you use Windows you can use pywinauto.
I know it not a complete answer but it might give you a lead.

Knowledge Graph (Demo) UI using sigma.js?

Are there any beginner-friendly tutorials to display graphs in the way Knowledge graph has been done?
I have the data is JSON format presented from a graphdb
For eg:
The closest I have found so far is Gelphi. Which also can be integrated with unity to produce a 3d Graph like this one https://www.youtube.com/watch?v=h_arRCf73Kg.
Then there is https://cayley.io/
https://n0where.net/opengraphiti-data-visualization-engine/
There is also https://www.maana.io/knowledge-platform/platform-capabilities/#maana-knowledge-graph . However, i have not tried to use/download their platform.
https://en.wikipedia.org/wiki/Force-directed_graph_drawing
Finally, I am working myself on learning unity to build a simple GUI which a user can identify nodes and edges and entities easily and move them around. So instead of just reading from a data base, also write to it through a UI.

Does anyone know how to create a interactive graphs using flare or other visualisation classes?

Does anyone know of software or flex/flash/as3 source or visualisation software that could be used to make interactive graphs, where the user would enter a query that would pull data from a MySQL database and the user would build a sunburst or icicle graph by dragging and dropping items into a tree-like structure and they would be able to view the graph? i have attempted to use flare but my programming skills are pretty bad. So far from what i gather, flare only allows the graphing of defined datasets rather than allowing a user to modify the dataset and thus creating a new dataset.
Help?
This is far too big for the scope of a single question. You're going to need to write at least a few different pieces.
1.) Access to the database and a way to view datasets
2.) Control handlers to drag and drop datasets onto your chart object
3.) A chart object that can handle receiving dropped dataset items and render itself accordingly.
There are lots of good charting frameworks out there including Flare, Axiis, Flex charting, Fusion Charts, iLog Elixir. I'm not sure what you're trying to do but any one of those should be able to serve as your charting piece.
We worked on a project that used Flare and Flex. We had to provide the data to Flare in an XML format called GraphML, so we had code to convert the data into the required format in our C# backend, and then we passed it to Flex. There were naff all tutorials for it though, so took some time to figure it out.
There is a properly cool graphing tool (although its commercial) called Kapit. Check out their Diagrammer and Visualizer demos. It could be the case that its worth the spend.
But I agree with Mr Owen, theres some mad scope in that question:)

Resources