Set up

library(igraph)
library(igraphdata)

load('data/examples_for_videos.RData') # loads the networks we will use 

Network with undirected, unweighted edges

par(mar=c(0,0,0,0)+.1) # to reduce the margins around the graph
plot(g_ud_uw) # the default plot 

We can improve it! (or not…)

par(mar=c(0,0,0,0)+.1) # to reduce the margins around the graph
plot(g_ud_uw,
     vertex.color = 'darkorchid1',
     vertex.frame.color = 'lightgrey',
     vertex.label.dist = 1.7,
     vertex.label.family = 'sans', 
     edge.color = 'darkolivegreen', 
     edge.width = 1.5,
     edge.curved = 0.5) 

Network with undirected, weighted edges

par(mar=c(0,0,0,0)+.1) # to reduce the margins around the graph
plot(g_ud_w) # the default plot does not show the weights!

par(mar=c(0,0,0,0)+.1) # to reduce the margins around the graph
plot(g_ud_w, edge.width = E(g_ud_w)$weight) # to adjust widths with the weights 

Network with directed, unweighted edges

par(mar=c(0,0,0,0)+.1) # to reduce the margins around the graph
plot(g_d_uw) # the arrows are naturally provided in directed graphs 

The arrows can also be tweaked.

par(mar=c(0,0,0,0)+.1) # to reduce the margins around the graph
plot(g_d_uw,
     edge.arrow.width = 0.5,
     edge.arrow.size = 1.5,
     edge.color = 'limegreen')

Network with directed, weighted edges

par(mar=c(0,0,0,0)+.1) # to reduce the margins around the graph
plot(g_d_w) # again, notice the weighted edges are not showing up

par(mar=c(0,0,0,0)+.1) # to reduce the margins around the graph
plot(g_d_w, 
     edge.width = E(g_d_w)$weight,
     edge.arrow.width = 2)

Network layouts

data("karate") # we need a more complicated graph to show the different layouts 
par(mar=c(0,0,0,0)+.3, mfrow = c(1,2)) # to reduce the margins around the graph + plot both networks together
set.seed(1) # to fix graph layout 

plot(karate, layout = layout_in_circle, main = 'circle')
plot(karate, layout = layout_with_gem, main = "gem") 

LS0tCnRpdGxlOiAnUEw0MjQ2IE5ldHdvcmtzIGluIFBzeWNob2xvZ3k6IFR1dG9yaWFsIDEnCmF1dGhvcjogIkRyLiBDeW50aGlhIFMuIFEuIFNpZXciCnN1YnRpdGxlOiAnVmlkZW8gMTogVmFyaWV0aWVzIG9mIE5ldHdvcmsgVHlwZXMnCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiBUUlVFCiAgICB0b2NfZmxvYXQ6IFRSVUUKICAgIGRmX3ByaW50OiBwYWdlZAogICAgY29kZV9kb3dubG9hZDogdHJ1ZQotLS0KIyBTZXQgdXAgCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQprbml0cjo6b3B0c19jaHVuayRzZXQobWVzc2FnZSA9IEZBTFNFKQprbml0cjo6b3B0c19jaHVuayRzZXQod2FybmluZyA9IEZBTFNFKQpgYGAKCmBgYHtyIGxvYWQtbGlicmFyaWVzfQpsaWJyYXJ5KGlncmFwaCkKbGlicmFyeShpZ3JhcGhkYXRhKQoKbG9hZCgnZGF0YS9leGFtcGxlc19mb3JfdmlkZW9zLlJEYXRhJykgIyBsb2FkcyB0aGUgbmV0d29ya3Mgd2Ugd2lsbCB1c2UgCmBgYAoKIyBOZXR3b3JrIHdpdGggdW5kaXJlY3RlZCwgdW53ZWlnaHRlZCBlZGdlcwoKYGBge3J9CnBhcihtYXI9YygwLDAsMCwwKSsuMSkgIyB0byByZWR1Y2UgdGhlIG1hcmdpbnMgYXJvdW5kIHRoZSBncmFwaApwbG90KGdfdWRfdXcpICMgdGhlIGRlZmF1bHQgcGxvdCAKYGBgCgpXZSBjYW4gaW1wcm92ZSBpdCEgKG9yIG5vdC4uLikKCmBgYHtyfQpwYXIobWFyPWMoMCwwLDAsMCkrLjEpICMgdG8gcmVkdWNlIHRoZSBtYXJnaW5zIGFyb3VuZCB0aGUgZ3JhcGgKcGxvdChnX3VkX3V3LAogICAgIHZlcnRleC5jb2xvciA9ICdkYXJrb3JjaGlkMScsCiAgICAgdmVydGV4LmZyYW1lLmNvbG9yID0gJ2xpZ2h0Z3JleScsCiAgICAgdmVydGV4LmxhYmVsLmRpc3QgPSAxLjcsCiAgICAgdmVydGV4LmxhYmVsLmZhbWlseSA9ICdzYW5zJywgCiAgICAgZWRnZS5jb2xvciA9ICdkYXJrb2xpdmVncmVlbicsIAogICAgIGVkZ2Uud2lkdGggPSAxLjUsCiAgICAgZWRnZS5jdXJ2ZWQgPSAwLjUpIApgYGAKCiMgTmV0d29yayB3aXRoIHVuZGlyZWN0ZWQsIHdlaWdodGVkIGVkZ2VzCgpgYGB7cn0KcGFyKG1hcj1jKDAsMCwwLDApKy4xKSAjIHRvIHJlZHVjZSB0aGUgbWFyZ2lucyBhcm91bmQgdGhlIGdyYXBoCnBsb3QoZ191ZF93KSAjIHRoZSBkZWZhdWx0IHBsb3QgZG9lcyBub3Qgc2hvdyB0aGUgd2VpZ2h0cyEKYGBgCmBgYHtyfQpwYXIobWFyPWMoMCwwLDAsMCkrLjEpICMgdG8gcmVkdWNlIHRoZSBtYXJnaW5zIGFyb3VuZCB0aGUgZ3JhcGgKcGxvdChnX3VkX3csIGVkZ2Uud2lkdGggPSBFKGdfdWRfdykkd2VpZ2h0KSAjIHRvIGFkanVzdCB3aWR0aHMgd2l0aCB0aGUgd2VpZ2h0cyAKYGBgCgojIE5ldHdvcmsgd2l0aCBkaXJlY3RlZCwgdW53ZWlnaHRlZCBlZGdlcwoKYGBge3J9CnBhcihtYXI9YygwLDAsMCwwKSsuMSkgIyB0byByZWR1Y2UgdGhlIG1hcmdpbnMgYXJvdW5kIHRoZSBncmFwaApwbG90KGdfZF91dykgIyB0aGUgYXJyb3dzIGFyZSBuYXR1cmFsbHkgcHJvdmlkZWQgaW4gZGlyZWN0ZWQgZ3JhcGhzIApgYGAKClRoZSBhcnJvd3MgY2FuIGFsc28gYmUgdHdlYWtlZC4gCgpgYGB7cn0KcGFyKG1hcj1jKDAsMCwwLDApKy4xKSAjIHRvIHJlZHVjZSB0aGUgbWFyZ2lucyBhcm91bmQgdGhlIGdyYXBoCnBsb3QoZ19kX3V3LAogICAgIGVkZ2UuYXJyb3cud2lkdGggPSAwLjUsCiAgICAgZWRnZS5hcnJvdy5zaXplID0gMS41LAogICAgIGVkZ2UuY29sb3IgPSAnbGltZWdyZWVuJykKYGBgCgojIE5ldHdvcmsgd2l0aCBkaXJlY3RlZCwgd2VpZ2h0ZWQgZWRnZXMKCmBgYHtyfQpwYXIobWFyPWMoMCwwLDAsMCkrLjEpICMgdG8gcmVkdWNlIHRoZSBtYXJnaW5zIGFyb3VuZCB0aGUgZ3JhcGgKcGxvdChnX2RfdykgIyBhZ2Fpbiwgbm90aWNlIHRoZSB3ZWlnaHRlZCBlZGdlcyBhcmUgbm90IHNob3dpbmcgdXAKYGBgCgpgYGB7cn0KcGFyKG1hcj1jKDAsMCwwLDApKy4xKSAjIHRvIHJlZHVjZSB0aGUgbWFyZ2lucyBhcm91bmQgdGhlIGdyYXBoCnBsb3QoZ19kX3csIAogICAgIGVkZ2Uud2lkdGggPSBFKGdfZF93KSR3ZWlnaHQsCiAgICAgZWRnZS5hcnJvdy53aWR0aCA9IDIpCmBgYAoKIyBOZXR3b3JrIGxheW91dHMgCgpgYGB7cn0KZGF0YSgia2FyYXRlIikgIyB3ZSBuZWVkIGEgbW9yZSBjb21wbGljYXRlZCBncmFwaCB0byBzaG93IHRoZSBkaWZmZXJlbnQgbGF5b3V0cyAKYGBgCgpgYGB7cn0KcGFyKG1hcj1jKDAsMCwwLDApKy4zLCBtZnJvdyA9IGMoMSwyKSkgIyB0byByZWR1Y2UgdGhlIG1hcmdpbnMgYXJvdW5kIHRoZSBncmFwaCArIHBsb3QgYm90aCBuZXR3b3JrcyB0b2dldGhlcgpzZXQuc2VlZCgxKSAjIHRvIGZpeCBncmFwaCBsYXlvdXQgCgpwbG90KGthcmF0ZSwgbGF5b3V0ID0gbGF5b3V0X2luX2NpcmNsZSwgbWFpbiA9ICdjaXJjbGUnKQpwbG90KGthcmF0ZSwgbGF5b3V0ID0gbGF5b3V0X3dpdGhfZ2VtLCBtYWluID0gImdlbSIpIApgYGAKCg==