Power blocs & social balance in the Middle East

The Middle East is currently ablaze with a variety of conflicts. A civil war is raging in Syria, in which already hundreds of thousands of people died and millions of people had to flee from their home. On and across those borders, ISIS wages war on both Syrian and Iraqi territory. In Libya the situation has deteriorated into a civil war. Then there is the seemingly never-ending conflict between Israel and Palestine affecting all other conflicts. Continue reading Power blocs & social balance in the Middle East


Easy, flexible and fast framework for community detection.

Good news! In an earlier post, I talked about my flexible implementation of the Louvain algorithm in Python. Now, it is also available in a C++ implementation, making it run much (really much) faster. Whereas the previous version already began to stagger for a thousand nodes, this implementation can easily be applied to graphs of millions of nodes (although you still might need to be patient when your graph is really that big). Even better, you can now simply install it using pip: sudo pip install louvain. For Windows users, you can refer to the binary installer at the PyPi repository. The source code is also available from GitHub. Continue reading Easy, flexible and fast framework for community detection.

Plot multiple files using pgfplots

Often, I like to plot multiple versions of some results. For example, I run some simulations for multiple parameters, or test a bunch of different methods. Although it is of course no problem to create different plots for the different results automatically, using for example matplotlib, I usually resort to pgfplots for the final figures. It produces very high quality plots that you can control very well, especially because it uses TikZ in the background. But automating it can sometimes be a bit difficult. Continue reading Plot multiple files using pgfplots

Using ColorBrewer in TikZ and pgfplots

Choosing what colours to use for your plotting purposes is not always straightforward. Although most programs give you reasonable defaults for doing your day-to-day plots, perhaps you’d fancy a bit more style for your plots that will be published. Indeed, I often simply use gnuplot, matplotlib or the native plotting routines in R or matlab for doing my first visualizations. But for publications, I often switch to pgfplots, an excellent package built on top of TikZ which are implemented as LaTeX packages. Continue reading Using ColorBrewer in TikZ and pgfplots

Easy, flexible framework for community detection

Let me start off by saying that working with igraph through its python bindings has been a great relieve! Although its R bindings seem to be much popular, I much prefer python over R. It’s not that R is bad—on the contrary, it’s very good—but it’s simply not very much a programmer’s tool, it’s more a statistician’s type of tool. I guess I’m not the latter. Continue reading Easy, flexible framework for community detection

Significance in random graphs, trees and lattices

Many complex graphs seem to contain some sort of community structure, representing a microscopic scale of organisation of the network. Nonetheless, many graphs do not seem to have any particular community structure, such as random graphs. One of the central questions then when finding a community structure in some empirical graph is whether it is very different from a random graph? In other words, is the community structure significant? Continue reading Significance in random graphs, trees and lattices

Complexity in the Digital Humanities

I am organising a small one-day workshop on “Complexity in the Digitial Humanities”, which promises to be an exciting event. We will have three very interesting keynote speakers: Marcel Ausloos, Diego Garlaschelli and Stefan Dormans. In addition there will be shorter presentations on a wide variety of topics, ranging from music to networks. For more information, please visit: http://ehumanities.nl/complexity-in-the-digital-humanities/.