What is New in Java 13

Greetings after a long break. In this post, I will tell you Text Blocks(JEP 355) and Switch Expressions(JEP 354) in Java 13. As you see, some other features in Java 13 are listed below. You can click…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




How to visualize a graph

Graph visualization is taking an increasingly important role in everyday life, both in the public and private sectors.

A graph data representation makes sense when we have data connected to each other and these connections are as important as the data itself. Some fields where the graph visualization is very important are:

Once you understand the importance and power of graphs, the question arises: but how do I visualize a graph?

The most appropriate answer is always: it depends 😂

It depends on what we have to do, how much time we have available and also on the budget.

Below I will talk about some free solutions, and others for a fee and for both, the case of ready-made applications and applications to be implemented.

I want to clarify that it will not be a list containing all the tools for drawing graphs, but only some of those that I got to know in first or second person.

I would like to specify that it is not a ranking

Although they have been on the market for many years, they support web development, in addition to most desktop technologies.

They have a very large and detailed set of visualization algorithms, in fact it is not uncommon to find scientific publications, on visualization algorithms, that cite this product as a tool in which to find algorithms like that.

Tom Sawyer Perspectives it is a complete graph visualization software development kit (SDK), therefore a desktop application, excellent in case you want to have an application ready for use.

They have a very sophisticated set of algorithms, mainly due to their research collaborations with various universities, in the last period they focus on the university of crete in greece where one of their offices is located.

Enterprises, system integrators, technology companies, and government agencies use Tom Sawyer Perspectives to build a wide range of applications

Although in recent years there have been only bug fixes it remains today among the top analysis tools on networks.

The interface has been built intelligently since it is identical to microsoft office products which makes it very intuitive despite being full of features.

Linkurious Enterprise is defined as an on-premises and browser-based platform that works on top of graph databases.

Is a platform where you can view graphs from graph db and have a constant interaction with it.

You have the possibility to do simple operations such as analysis on the structure of the graph, change of color and size of the elements and so on.

The set of algorithms available is quite limited.

From my point of view the UX is really nice, you can see that they spent some time there.

Organizations such as the French Ministry of Economy and Finance, Zurich Insurance or Bank of Montreal use Linkurious Enterprise to fight financial crime, terror networks or cyber threats.

Ogma is instead a webgl based graphics engine, with very high performance, the same graphics engine present in the Linkurious Enterprise application, with this tool you have instead a wide freedom of functionality, you can build your application as you see fit.

The set of algorithms is the same but there are many more features that are not currently reported in the enterprise version.

You can use it with any web development framework / library.

Is a company born about ten years ago, personally I really like their way of working, their professionalism and their competence in terms of UX.

KeyLines is a really high performing WEBGL based renderer, it can be used on any web development framework / library.

The set of visualization algorithms is not very large, however they are very accurate.

In my opinion one of the strengths are the algorithms for social network analysis and their tutorials on how to use them; it is a nice set of algorithms useful for both SNA and beyond

KeyLines applications work on any device and in all common browsers, to reach everyone who needs to use them. It is also compatible with any IT environment, letting you deploy your network visualization application to an unlimited number of diverse users. You can build a custom application that is scalable and easy to use.

ReGraph was created specifically for React developers, and I believe it has the most beautiful API I’ve ever seen 😊

The two products are well maintained, there are releases every two weeks or so.

as already specified these are not all the paid tools / libraries for viewing graphs, but only a set of those that I was lucky enough to use.

I also want to clarify that the visualization algorithms often used with these tools / libraries are less performing and more reductive in terms of user experience.

It was born as a PhD project to become one of the most used libraries for visualization by developers.

It has fine grain primitives available and therefore allows you to create visualizations of any kind.

I personally believe that at the structure level of the code there is a confusion between data manipulation and dom manipulation, however it is very easy to use.

Both algorithms for visualization and a renderer are made available, this means that you can also use only one of these two components.

The renderer is based on SVG but if we wanted to have better performance we could use the algorithms of D3.js and a renderer in canvas or WEBGL.

You have many examples available but pay attention to the versions of the library to date, each new version released has always upset the library, not allowing the upgrade unless the application is almost completely rewritten.

As an experiment take an example with a version of the library and try to change it to a more recent one; if you find

change it in

It was originally created for biologists as desktop application. To date there is a web version of this library it is specifically for viewing graphs and designed to be used on tablets as well.

To be an open project it has a good API, but a little bit descriptive.

Has a good set of visualization algorithms, to be set according to the use case and has 4–5 social network analysis algorithms that not everyone has.

Personally I think it’s a good tool.

The goal of those who created it was to have a simple library like d3.js but that was also very powerful and could do 3d visualizations and in my opinion they have succeeded, the only problems are that there is not much support on the problems because very few people use it and there is also a little something missing for the basic customizations.

However excellent initiative, to be kept under control, perhaps in the very near future it will become common use.

Is a library for data visualization, created for React applications.

This library is led by the writer d3 in action in fact uses a renderer in React with the algorithms of d3.js

There is a section on the visualization of graphs, which does not stop at the node-link representation, however, each view is very limited and not very customizable. It is ideal for those who want to view the data as it is without getting their hands dirty on the visualization.

There is a section for viewing on canvas for higher performance.

This tool is also suitable for 360 degree data visualization, therefore also for graph visualization, however, from my point of view it is very little customizable.

Here too, if the goal is to have a quick view without wasting time and getting your hands dirty it is an excellent solution.

Is a desktop application that I have used a lot in the past, it is very fast and contains a good set of extensible visualization algorithms, you can do operations on the graph such as changing colors and understanding its structure.

You can load graphs under really every format.

You can export the graph in many formats also as an image.

I also used it only as a converter from one format to another.

yEd is freely available and runs on all major platforms: Windows, Unix/Linux, and macOS.

It is a graphics library that offers very low granularity, so you can really do everything, whatever type of visualization you have in mind, but it requires more effort on the developer side.

An excellent combination is to use an external library for algorithms, such as d3.js, and then this library to build a very efficient renderer.

Personally I really like to implement algorithms for drawing graphs, so I feel very comfortable in using P5 as a renderer.

Through an instruction you can switch from canvas to WEBGL which is formidable, you can therefore view elements in 3d.

From my point of view, however, it has a problem, there is no way to save the data you pass to the renderer in the GPU and this is necessary to have truly high performance. To save data I mean a batching or instancing technique. But let’s not lose sight of it, it will surely be one of the next features.

To finish p5 has many examples and many people who make tutorials on how to use it

Is a library for creating online video games, uses WEBGL for performance reasons but only allows you to view it in 2d.

Also in this case the library has a very fine granularity allowing any visualization you want.

It is tremendously performing when using images, thanks to their texture storing mechanism thanks to this mechanism it is much more scalable if you use images instead of simple primitives such as circles.

Here you can make the same speeches that for P5.JS and then think of a joint use with d3.js.

Saving data within the GPU means that the visualization is very fast, however this has a cost to be paid on the developer side, who will have to write more code.

You can also use react for DOM manipulation as it is optimized to do so, then use SVG and its objects for the visualization and d3.js for the visualization algorithms.

So you have at hand a tool that allows you to view small graphs spending very little time for development.

These are the tools and libraries that I have had the pleasure of using, there are many others and if I have the pleasure of using them I will add my experiences to the list.

Based on your needs, your budget and your time available, now you can choose one instead of another.

Remember that in paid tools you will find ultra expert people who do this for work, so they have all products that provide effective and efficient visualizations. It doesn’t take anything to visualize circles and lines on a canvas, even using WEBGL, you can develop your own renderer in a very short time, the difficulties are:

All these problems have already been solved in one way or another by the various companies.

Personally I love algorithms and I love wasting time on the latter, so in my spare time I experiment with using free tools, in my work I prefer to go to paid tools by proposing customized visualization algorithms.

In conclusion, if you have tools / libraries to report to me, do it freely
and much more important, if you want to talk about graphs you will always find me available.

Add a comment

Related posts:

Let It Go

I will share with you my favorite piece from my book. It took me so long to be at this stage of maturity and the ability to move on and forgive. Holding on to pain doesn’t fix anything, replaying the…

Bootstrap 5

Bootstrap released a new beta version 5.0.0-alpha1 on 17th June 2020. It comes with a variety of new features and updates. We will look at them one by one. It is not recommended to use them in…

Offering

Deaconess Amaka climbed the pulpit, walking gingerly as if she was walking on hot coals. The heels which seemed a bit high must be the reason and also the dread of falling because of it. She scanned…