Monty Python’s Quest for the Holy Grail


Visualization

INTRODUCTION

Being a long time fan of Monty Python, a British surreal comedy group, I decided to explore the network of characters from the movie, ‘Monty Python’s Quest for the Holy Grail’ (MPQHG) for my project.  

The goal of this project was to create different network visualizations based on the connectivity of characters in the movie by lines spoken in the same scene.

VISUAL INSPIRATIONS

I picked the below visualization, figure 1, as an inspiration because it is a visualization on the same exact topic using Tableau and appears to use a similar dataset as the one I created for my project.

Figure 1. Retrieved from http://evelinag.com/blog/2015/12-15-star-wars-social-network/index.html#.WfTLkhNSyRu

I chose figure 2 below as an inspiration because it is an example of a network visualization that used Gephi for creation. It also is an example of a network of a larger cast of movie characters, the Star Wars Universe, which is similar to the larger cast in MPQHG.

Figure 2. Retrieved from http://evelinag.com/blog/2015/12-15-star-wars-social-network/starwars.png

Lastly, I picked the below visualization, figure 3, as an inspiration because I enjoyed the aesthetics of the visualizations, the black background and the shades of color used for nodes and edges, and how the different representations of the network are displayed in different layouts.

Figure 3. Retrieved from http://mkweb.bcgsc.ca/linnet/

MATERIALS & METHOD

Creating the Data

For this project, I created my own dataset. I found a copy of the scripts for Monty Python’s Quest for the Holy Grail online. I then used the script to create the dataset I needed.

I made three columns necessary for using Gephi:

  • Source = a character who had a line in a scene
  • Target = the other character(s) who had a line in the same scene
  • Type = Undirected

I then created 2 more columns. One, titled ‘actor’, for the actors representing the actors who played the characters. The second, titled ‘mp_member’,  was a yes/no column for if the actor was a member of Monty Python.

Cleaning the Data

I used OpenRefine to clean up the data. This was mostly just trimming leading and trailing whitespace and viewing text filters to ensure I had the correct amount of characters and no typos.

Making the Visualization

To create the visualizations I used Gephi, an open-sourced software for network visualization and analysis. After importing my data, I then ran statistics such as, degree, diameter, and graph density, which were automatically pushed into the ‘Data Laboratory’ in Gephi.

After exploring different layout options provided by Gephi and downloading some more plug-in options, my final visualizations were created by using two layouts:  Forced Atlas and Circular.

VISUALIZATIONS & DISCUSSION

Below are the different visualizations that I created with my dataset using Gephi. In all of the visualizations, the nodes are a character in the movie and the edges are the connections by scene.

Figure 4

For the above visualization, I used the Forced Atlas Layout. The color and size of the nodes were created using degree and the edges by weight. In this visualization, I left in the labels (character names), but did not include them in figure 5 below.

Although sizing and color need work, I felt that this visualization demonstrated the connectivity between characters in the movie. A user can clearly see that Lancelot went off his own mini quest at some point during the movie. Other mini quests by knights are not as clear to see, but I believe that is from the scene in the movie that broke the fourth wall. During this scene, many of the otherwise unrelated characters in the movie have a line.

Figure 5, below, is another version of my first visualization, without labels, using different colors based on clustering, and attempting to fix the size of nodes and edges.

Figure 5

I also played around with the Circular Layout that is a plugin option for Gephi. The visualizations using the Circular Layout particularly need more work done on them for sizing of nodes and edges.

Figure 6 and figure 7 below are basically the same, except for the labels being present and thicker edges in figure 6.  Again, nodes were colored and sized by degree and edges colored by weight.

Figure 6

Figure 7

 

 

 

 

 

 

 

 

 

 

Lastly, while I feel like figure 8 below needs a lot more work, specifically for sizing and scale aspects, I wanted to create a visualization that represented whether or not a character in the movie was played by a Monty Python member. I believed this was important to represent because of the nature of Monty Python and how the members all played multiple characters in the movie. In the visualization, the blue nodes represent if a character was played by a Monty Python member and the green nodes were for characters where the actor was not a Monty Python member.

Figure 8

FUTURE DIRECTION

Overall, I think Gephi was an interesting tool to use. I do wish that I had more control over where the labels of nodes appear in the visualization. While I did continually save my progress, in case Gephi crashed, I realized I was not specific enough with labeling my files and soon became confused when switching between versions.

I believe my visualizations need more work, specifically with sizing. I also think it would be interesting to color nodes by specific Monty Python member, as each member played multiple roles in the movie. Lastly, if I had more time, I would like to explore the SigmaExporter plug-in, which is used towards making an interactive display of my network data in a web browser and adding scene attributes to the dataset.