Network Graphs of Game of Thrones & A Song of Ice and Fire


Final Projects, Visualization
Fig#1 | Game of Thrones TV series logo

Introduction

Game of thrones is a fantasy TV series on HBO based on a series of fantasy novels “A Song of Ice and Fire” written by George R. R. Martin. The TV series has eight seasons with a total of 73 episodes whereas the novel series has five volumes in total. While the TV series goes beyond the books in story, both the TV series and the novel collection have a similar storyline with a plethora of characters spread across several kingdoms in a fictional world. 

In this project I have attempted to create network graphs of the interactions between the characters from the TV series as well as the novel collection in each season and book respectively. Additionally, I have also attempted to create similar networks with incremental cumulative datasets which have cumulative data from all the previous seasons/books till the season/book being considered. 

Furthermore, I have also attempted to make hypergraphs for the networks for each season and book respectively. Finally, to make these hypergraphs connect with the story, I have attempted to place them on the map of the fictional world where the story from the TV series and the novels takes place.

Inspiration

This project is an extension of my Lab #3 on Networks which was based on the Game of Thrones series cumulative dataset for all the eight seasons. In this lab I did the network graph for the cumulative dataset as well as the hypergraph for the same.

Fig#2 | Network Graph from Lab#3
Fig#3 | Hypergraph from Lab#3

This lab had several facets & directions that could be explored in future work. This lab gave me the inspiration to keep on working on it to develop a more refined result with more depth. Since the network graph for the lab was just for the cumulative dataset of the TV series, I decided to do the graphs for each individual season of the TV series as well as for incremental cumulative datasets. I also created similar network graphs for novel collections for performing comparative analysis with the graphs from the TV series.

Datasets, Tools & Softwares

Datasets | The primary dataset for this project is from Network of Thrones which is hosted on their GitHub. They have separate datasets for TV series and the books which are split into individual seasons or book volumes respectively. I built custom datasets using these datasets as source wherever required in the project.

Python | I used the python programming language to create the custom datasets (incremental cumulative datasets for TV series & Books) and for creating the datasets for the hypergraphs.

Gephi | I used Gephi for creating the network graph visualizations. It is a free tool which provides a wide range of plugins and layouts for varied uses.

Inkscape | I used Inkscape to make the final visualizations for hypergraphs on map. Inkscape is a free editing software.

Methodology

UX Research Method

Participants

Participant#1

Profession: Architect
Education: MS in Architectural Engineering
Age: 24 Years
Location: Manhattan
Notes: Has watched all the episodes of the TV series, knows design principles & has visual design sense.

Participant#2

Profession: Entrepreneur
Education: BE in Electronics Engineering
Age: 30
Location: Mumbai
Notes: Is a Game of Thrones fan, has watched all the episodes of the TV series, Is familiar with the novel collection.

Since this project is the extension of my lab #3 on networks for this class, I divided the UX research process into two parts. First part was to get the feedback of the participants by using the results of lab #3 as prototypes to gain insight on the starting point of this project as well as what the final result should look like. The second part of the process was to get feedback from the participants after the visualization has been created to check if the results fulfill their purpose as well as to get additional insight on their improvement and final products.

Both the parts of the UX research were in the form of interviews in which the participants involved were asked to observe the visualizations and think-aloud their thoughts & recommendations. The participants were also asked a few follow-up questions wherever deemed necessary to get enriched feedback & opinions.

First part of UX Research

This UX Research was done using the results of Lab#3 on networks as prototypes to gain the feedback from participants before starting this project. The interview started with showing the participants the hypergraph that was created for the cumulative dataset of all the 8 seasons of the TV series. The following questions were asked to guide them through the thinking process and get their feedback:

  1. What is your initial reaction to this hypergraph?
  2. What do you think is the goal for this visualization?
  3. Do you think this visualization fulfills its purpose?
  4. What would you like to change about this visualization?
  5. Would you like to add anything to this visualization?
  6. Do you have any additional recommendations to improve this visualization?

Further, after the participant feedback for the hypergraph was noted, they were shown the network graph for the cumulative dataset of the 8 seasons of the TV series from Lab#3. A similar process was followed for this visualization as for the hypergraph. The questions to guide the thought process of the participants to get the feedback for this visualization were as follows:

  1. What is your initial reaction?
  2. Do you understand this visualization?
  3. What do you think is the objective for this visualization?
  4. Do you think this visualization achieves the goal?
  5. What would you like to change about this visualization?
  6. Would you like to add anything to this visualization?
  7. Do you have any additional recommendations to improve this visualization?

Second part of UX Research

This part of the UX Research was done using the results of this project which included the individual network graphs for each season and book, and the network graphs from incremental cumulative datasets for each season and book. The interview was started by showing the participants two network graphs – individual & incremental – side by side for each season and book. The participants were asked to think-aloud while they observed these graphs. The following questions were asked to guide the participants in the thinking process in order to get usable feedback from them:

  1. What is your initial reaction?
  2. Do you understand these visualizations?
  3. What do you think is the goal of doing these visualizations?
  4. Do you think these visualizations achieve their goals?
  5. Which one of these do you think would be better to make a hypergraph and why?
  6. Would you like to change anything to this visualization?
  7. Do you have any recommendations for the eventual hypergraph?
  8. Do you have any additional recommendations for these graphs?

Visualization Design Process

Step #1 – Dataset Creation

I started this process with building the datasets. The individual datasets for each series and each volume of book were available to me from The Network of Thrones. I wanted to build custom datasets for the TV series as well as the novel collection which were incremental & cumulative in nature with respect to each progressing season or book. I used python programming language to write the code to build these custom datasets. This code is uploaded on my GitHub repository for this project.

Fig#4 | Python script snippet for joining edges
Fig#5 | Python script snippet for creating incremental datasets
Fig #6 | Network graph for season 3 of TV series
Fig#7 | Network graph for incremental cumulative dataset till season 3 of TV series
Fig#8 | Network graph for book volume 2
Fig#9 | Network graph for incremental dataset till book volume 2

After the custom datasets were built, I started creating the network graphs in Gephi for each season of the TV series followed by the Books. I created graphs for each individual season/book as well as the incremental cumulative dataset which were custom built.

Fig#10 | Example of Nodes Datasheet having clustering data
Fig#11 | Example of Edges Datasheet having clustering data

Further, to make the hypergraphs for final visualizations I exported the datasheets for each network from Gephi for nodes and edges which had the clustering data with them. Then I again wrote a python code to create the hypergraph files for nodes and edges from the datasheets exported from Gephi.

Fig#12 | Python script snippet for creating hypergraph datasets

The code to make the hypergraph files is also uploaded on my GitHub repository for this project. Once I had the hypergraph files, I imported them in Gephi to make the hypergraph Visualizations.

Fig#13 | Example of Hypergraph Nodes Datasheet imported in Gephi
Fig#14 | Example of Hypergraph Edges Datasheet imported in Gephi

Once the hypergraphs were created, I started to look for a suitable map for the fictional world where the story happens. I found several good variations of the map on Wallpaper.dog. I decided to use this map, which can be used for all the visualizations.

Fig#15 | Chosen map from Wallpaper.dog to be used as a base map for hypergraph representation

Finally, after I had all the hypergraphs and a base map, I used inkscape to superimpose the hypergraphs on the base map to make the final visualizations. I created all the hypergraph-map visualizations for all the seasons and book volumes.

Fig#16 | Hypergraph Map for season 6 of the TV series
Fig#17 | Hypergraph Map for Book volume 3

All the results are hosted in the visualizations folder on my GitHub repository for this project. The results have all the network graphs and map graphs as discussed above.

Findings

UX Research Findings: First set of UX interviews

Both the participants were not able to understand the hypergraph with itself, they needed explaining as to what the hypergraph was and what it was representing. They both thought that the hypergraph lacked context and that needed to be addressed somehow. Participant #1 recommended the addition of pictures instead of names on the nodes of the hypergraph if possible. Both the participants recommended removing the nodes which were small enough to be inconsequential to the visualization or didn’t fit into any defined clusters.

Since the participants were shown the hypergraph first and had been explained what it represents they were able to understand the network graph of the cumulative seasons of the TV series. Both the participants thought that the network was a bit cluttered and very crowded. Both the participants recommended making the network cleaner and less crowded. Participant #2 recommended that the network should have some structure and maybe should be made in another shape or layout.

UX Research Findings: Second set of UX interviews

Both the participants liked the network graphs better than the one shown in the first part of the research process. They thought the graphs were cleaner, well organized, had a good layout and were visually appealing. As they were now already introduced to network graphs they understood the visualizations without any difficulty. Both the participants chose the individual network graphs to be converted to hypergraphs, since they wanted the hypergraphs to represent the story that was being conveyed in that season or book. They both had a similar opinion that the incremental graphs are good for comparative analysis and to look at the history of the storyline. Both participants thought that the eventual hypergraphs would need some context if they were shown individually.

Design Visualization Findings

The network graphs of the individual season and book datasets follow the storyline chronologically as intended. The form clusters which are analogous to that of the storyline from the series and books. In that, these network graphs drop the nodes which are not in the current storyline of their season or book volume. Various facets of the storyline like several alliances, wars, geographical regions can be easily identified on the individual network graphs by someone familiar with the storyline.

Fig#18 | Network graph for season 1 of the TV series
Fig#19 | Network graph for season 8 of the TV series

Here for example in Fig#18, it can be easily seen how the network follows the story of the first season in the way the characters are clustered. There are clear clusters from the King’s landing, Winterfell, Dothraki Tribe, the Night’s Watch. People familiar with the story can easily identify these connections. In the final season for example in Fig #19, the north and the south alliances for the final war are readily apparent. Similar observations can be made for all the 8 seasons and all the 5 volumes of the books.

Fig#20 | Network graph for the incremental dataset till season 8 of the TV series

The incremental network graphs avoid forgetting any character that had made an appearance in the storyline. In this, these incremental graphs behave exactly as designed and intended. As the incremental network graphs progress with the story through seasons or books the more prominent characters for the storyline get highlighted and become more pronounced as their nodes increase in size. Since the incremental network graphs remember every character in the storyline they get larger and larger as the story progresses through the seasons and books.

Here for Example in Fig #20, it can be seen that certain characters like Ned which die in earlier seasons of the story are still preserved in this visualization. While the characters like Jon, Cersei, Sansa, Arya, Daenerys etc., which last till the final season are clearly more pronounced in the visualization as well as their size is larger than the other nodes.

Both the individual network graphs and incremental network graphs represent the storyline with fairness. One does it in chronological order while the other preserves the characters and highlights the more pronounced ones.

Design Choices

Based on the findings from the UX research, I decided to make both the network graphs (individual and incremental) cleaner with a more structured layout. So I chose to use the Fruchterman Reingold layout with a gravity of 1.2 to arrange the nodes within a circular cross section area. The colors chosen for clustering are kept similar for both the incremental and individual graphs. Additionally, I also tried to choose the cluster colors based on the family banner or alliance or location in the storyline wherever possible.

Fig#21 | Network graph for cumulative dataset till season 8 used in first UX research interview
Fig#22 | Network graph for cumulative dataset till season 8 after implementing the findings of UX research

Based on the UX findings, to make the hypergraphs for each season and book I chose to use the individual datasets instead of the incremental datasets so that the visualizations and the hypergraphs will follow the storyline and represent events in a chronological order in accordance with the season/book.

Fig#23 | Hypergraph map visualization for season 5 of the TV series

Since the participants did not get any context for the hypergraph shown to them in part 1 of the research process, I attempted placing the hypergraph on the map as a potential solution to provide the lacking context of the hypergraphs. Fig #23 is an example of such a hypergraph map visualization.

Recommendations

There was a recommendation in the UX research to incorporate images into nodes instead of labels. This recommendation is worth looking into for further development of this project. I tried to implement this idea but didn’t quite figure out a consistent matrix or method for its implementation. I found out using images was very broad and didn’t quite capture the sentiment of the nodes in the hypergraph. I believe that images can play an important role in providing additional context to these visualizations but a refined and consistent solution needs to be formulated for their implementation.

Another promising avenue for further work includes playing around with the base map to make the final results more enriched.

Finally, a video or interactive visualization showing the transition of the hypergraph maps from season 1 to 8 and of books from volume 1 to 5 is a very solid idea which can be pursued for future work & development of this project.

References

https://studentwork.prattsi.org/infovis/visualization/network-graphs-of-game-of-thrones-the-tv-series/
https://github.com/mathbeveridge/gameofthrones
https://github.com/mathbeveridge/asoiaf