This post will provide a brief peak of the trade network which will be presented in the new FAO statistical yearbook 2013. The data area available from FAOSTAT (http://faostat3.fao.org/home/index.html#DOWNLOAD) under the "trade" and "detail trade matrix"section.
From the plot we can see that the United States of America is the biggest exporter of maize and Japan is the biggest importer as indicated by the size of the arrow which represents the size of trade. Argentina, Brazil, Hungary and France are also major exporters. This is an improvement from previous analysis and graphics where only bi-lateral relationship or aggregated time series were shown.
Instead of the igraph package, I have used the network package to generate the network this time. The code is much simpler and it is also more integrated with the sna package for conducting analysis.
## Load required library
library(plyr)
library(network)
## Read in data
maize.df = read.csv("https://dl.dropbox.com/u/18161931/maize_trade.csv", header = TRUE,
stringsAsFactors = FALSE)
## Present only the top 80% of the value traded to avoid over plotting.
maizeEx.df$cs = cumsum(maizeEx.df$Maize)
maizeFinal.df = subset(maizeEx.df, cs < tail(maizeEx.df$cs, 1) * 0.8)
## Create the network and set the size of arrow
maizeFinal.df$edgeSize = with(maizeFinal.df, Maize/sum(Maize))
maizeFinal.df$arrowSize = ifelse(maizeFinal.df$edgeSize * 30 < 0.5 , 0.5,
maizeFinal.df$edgeSize * 15)
maize.net = network(maizeFinal.df[, 1:2])
## Plot the network
plot(maize.net, displaylabels = TRUE, label.col = "steelblue",
edge.lwd = c(maizeFinal.df$edgeSize) * 100,
arrowhead.cex = c(maizeFinal.df$arrowSize),
label.cex = 2, vertex.border = "white",
vertex.col = "skyblue", edge.col = rgb(0, 0, 0, alpha = 0.5))
Hello,
ReplyDeleteI try to replicate the network chart but the code seems incomplete. For example:
> maizeEx.df$cs = cumsum(maizeEx.df$Maize)
Error: object 'maizeEx.df' not found
I think I know what you are trying to do so I duplicate maizeEx.df <- maize.df plus some other minor tweaks. Then I get a of of oversized labels. If I turn them off the network does not look anything like the one on the webpage. Is the code the one you used for the chart?
Thanks for sharing your work.
Javier
Great diagram! I used a website called Lucidchart as a network diagram generator and it was really easy to understand. If you use diagrams often you should check it out!
ReplyDeleteNice diagram, is it a AON network diagram. Very graphical and professional diagrams can be drawn from Creately cloud based diagram software. Check that out!
ReplyDelete