One common criticism of the otherwise excellent ggplot2 is that it doesn’t come with network visualisation capability. Network vis is so popular at the moment that it seems like a bit of a big omission; but network data is also quite unique in terms of structure (and the layout algorithms would need implementing) so I can see why it hasn’t been integrated.
Moritz Marbach has a great post explaining how to easily get ggplot2 up and running with network data. It was still one of the top hits on Google when I checked it out recently for a project. However the post is from 2011 so is getting a little dated – it uses the sna package rather than igraph (which seems to be becoming a standard for network science) and also has a few deprecated ggplot2 commands in it. So I thought I’d add a bit of an update here to the code.
As Marbach explains the secret to getting ggplot2 to draw networks is quite simple: get a network analysis package to give you a list of nodes, edges, and node layout information as a series of X,Y coordinates. Then you can simply plot the nodes with
geom_point and the edges with
geom_segment. Put together it looks something like this:
g = read.graph("a-network.gml", format="gml")
#get the node coordinates
plotcord <- data.frame(layout.fruchterman.reingold(g))
colnames(plotcord) = c("X1","X2")
#get edges, which are pairs of node IDs
edgelist <- get.edgelist(g)
#convert to a four column edge data frame with source and destination coordinates
edges <- data.frame(plotcord[edgelist[,1],], plotcord[edgelist[,2],])
colnames(edges) <- c("X1","Y1","X2","Y2")
ggplot() + geom_segment(aes(x=X1, y=Y1, xend = X2, yend = Y2), data=edges, size = 0.5, colour="grey") + geom_point(aes(X1, X2), data=plotcord)
OK it still needs some work! But anyone familiar with ggplot2 can do the rest.
I have just got back from the International Conference on Public Policy in Milan, where I was attending a stream of internet and public policy panels, as well as presenting a paper on explaining open data outcomes which I am currently working on together with some colleagues here at the OII. The conference itself was huge: in only it’s second year it attracted around 1,300 registrations, from across the policy sciences. Our sessions on the internet were quite well attended, though I didn’t feel like we attracted many people beyond those already interested in the internet.
I acted as discussant on a couple of panels on big data, with a particularly interesting one on smart cities. I think the smart city field is where public policy and big data overlap most closely: using big data to govern the city has already captured a lot of attention in both academia and policy itself, with examples of initiatives such as the Mayor’s Office for Data Analytics in New York or the Centro de Operações in Rio de Janeiro. It’s interesting to see the potential these places have for improving existing administration
It’s also worth highlighting all the challenges to smart city development, from opening data to getting the right skills in place. This is probably the reason why large cities which have created these kind of data “nerve centres” are leading the way, because they can overcome these obstacles in a concentrated way with direct support from the hierarchy. They raise the interesting possibility, furthermore, that they will become not just supporters of policy execution, but places where policy is set and defined. That would be revolutionary.
I have just published a paper in European Union Politics, together with Diego Garzia, Joseph Lacey and Alex Trechsel of the EUI. The paper was the fruition of a long term research project examining potential ways of changing the European Parliament’s electoral system, focussed in particular on allowing people to vote for parties in any member state. It seems particularly relevant today when protest parties such as Syriza and Podemos attract support (and criticism) from well outside of their own borders.
The paper explores what would happen under conditions of such transnationalisation, examining both what types of people would be likely to vote “transnationally” and the extent to which overall levels of representation would improve. Great to have it in print.