Skip to Main Content


Research Guide for DAsH (or digital humanities) resources and tools

What is NodeXL?

NodeXL is an open-source template that can be used in Excel sheets to generate a network graph. The free version, Basic is what will be used in the exercise below, but there is also a Pro version available that allows for more rows of data to be gathered from Twitter, and the possibility of importing from other social media platforms. We'll be first discussing its use to import data from Twitter below, as Twitter can be an interesting source for network analysis, but you can use it to graph data that you have otherwise gathered. It allows you to do a lot of customization in terms of the color and shape of the nodes, and additionally contains analysis tools that will group them based on the patterns of connection that the nodes exhibit. If you want to do a graph that requires more customization that Palladio offers, but it doesn't require quite the level of complexity that a program like Gephi offers, then NodeXL can help you create that graph.

Learning Goals

A common use for network graphs is to analyze social networks, or how groups of people interact and are connected. Twitter is sometimes mined for these connections between people: who is retweeting who, who is using a given hashtag, and how those users are connected to each other, directly or indirectly. 

With this exercise you'll find out how to pull data from Twitter on a previous viral trend "Laurel/Yanni", the audio clip where some hear a voice saying "Laurel" and others hear "Yanni". By importing Twitter data, you'll see how that trend is spreading, in a smaller section of Twitter at least, by searching for instances where those words were used alongside a tweet with a video linked to it. It's important to note that you aren't going to get the exact same data as me, due to the limitations of NodeXL's basic import functions of Twitter, but you'll learn the principles of how to import and visualize Twitter data so that you can use it for your own projects.

Getting Started

  • If you haven't already downloaded NodeXL from their site, visit their download center hereUnzip the resulting folder you receive and run the installer.
  • Locate NodeXL Excel Template in your Start Menu and click to open it. 
  • It will open like a normal Excel Template with some column headers already set up. However the rows so far contain no data. Using the tabs at the bottom, scroll through the different sheets included in the template to get a sense of how the data is going to be organized. 
    • It opens to the sheet Edges. This is where the data on the connections between one user and another is stored. It starts with columns called Vertex 1 and Vertex 2 where each endpoint of a connection is stored. Vertex is a fancy word for nodes or actors, or the two people, places, or organizations that you want to see the connections of. In the case of this exercise, the edge is an individual tweet that matched your search parameters, and each vertex is a user who mentioned or retweeted that tweet as well as its originator. The Edges sheet will store the information about which two vertices (vertices is the plural of vertex) are connected, and it has additional columns for how to represent those connections on the graph, as in what color to make the line, as well as other information downloaded from Twitter about when the relationship occurred, what kind of relationship it is, and what geographic locations or websites are represented.
    • The next sheet is Vertices. This is where the data on the different nodes goes. The vertices are the items that are connected, in this case Twitter users. The additional columns allow for instructions on what color to make each node that can either be generated by the program, or customized by you. There is also additional information downloaded from Twitter about that user. 
    • After that comes Groups and Group Vertices. In Groups, you can set up the different categories you want the vertices to go into, and how the vertices in that group will be symbolized (square? yellow?). In Group Vertices, you assign the vertices to a particular group. This can be done manually, or the program can do so for you. For instance, you may want to separate the Twitter users in this group into men, women and institutions. Or you might want the program to separate out depending on a vertex's properties in the graph, how connected that vertex is or other measurements.
    • The last sheet in this workbook Overall Metrics is where measurements from looking at the graph as a whole will be kept, such as the graph's density or other measures. 
  • If you don't already have a Twitter account, please sign up for one now at This will be needed for the next step. 

Importing a Network from Twitter

There are a bunch of different options visible to you from the menu in NodeXL about where you can import from, but some of them are only available to Pro users. In this instance you'll be using the import function from Twitter. It's crucial to note that there's a limit of about 2,000 tweets that you can gather at one time, and that Twitter's API has a limit that you can only query it about once every 15 minutes so you'll want to be careful about your search terms so you get the information you want on your first try.

You'll be using this import function to gather tweets containing the words laurel and yanni that link to a video in an attempt to see how that viral challenge spread. 

  • Click on the menu on the Excel menu ribbon marked NodeXL Basic and go to the dropdown labeled Import on the left side 
  • From that menu, select Import from Twitter Search Network
  • There's a box below the initial search box that says Your Twitter Account. From there , if it's your first time using NodeXL, select the top option that you want to be taken to the authorization page on Twitter to sign into your account. Log in to Twitter from that page to let NodeXL login to your Twitter account. It will only use it to access Twitter, it won't post, but if you're feeling a little paranoid, you can always create an account just for this purpose, and authorize it to use that account.
  • Once you've authorized it, consult the Twitter Advanced Search Options to help you come up with the operators you can use in your Twitter search. It contains options to look for different word combinations, different users, different locations, and different filters for kinds of links associated with the tweet.
  • A list of the different operators that can be used on twitter to search it - available at -
  • In this case laurel yanni filter:videos is what you'll enter in. Stick with the basic network in this case. Your network will contain different information than mine, but when it finishes processing (give it 5-10 minutes), you'll get a pop up saying it'll need to turn on text wrapping. Click that you still want to continue the import
  • You'll get information in your NodeXL sheet that looks something like this
    NodeXL default page with entries for who tweeted and when
  • Edges contains the information on who tweeted, replied or mentioned whom.  It also contains dates and times. Note that they are all recent as the program starts recently and then counts backwards as a date was not given. When I've tried to use it lately, the date function has been a little buggy, so I simplified it for this tutorial and didn't include one.
  • Vertices contains the nodes or twitter handles of users along with their description, number of tweets and information on how many followers and follows they have, if you want to use that information to filter or visualize them.
  • The Groups and Group Vertices tabs will be blank until you generate groups (which you will later).

Getting Metrics and Deciding Visual Properties

What you get after importing the tweet is what amounts to a table. In order for this to become something that you'll be able to look at and analyze, you'll want to graph it, but as there are going to be a lot of individual tweets and users represented in this graph, you'll want to make sure that the different properties about those users and connections are indicated visually in your graph. With the below instructions you'll calculate which nodes are connected to the most other nodes (meaning they tweeted to the most or were retweeted by the most other users), and color them in accordingly.

  • In the NodeXL tab click where it says Graph Metrics, this is how the program will calculate the different measurements for each node. 
  • On the box that pops up, sure you've checked the boxes for Overall Graph Metrics, Vertex Degree, Vertex In-Degree, and Vertex Out-degree and click on Calculate Metrics. Degree is a measure of how many other nodes a given node is connected to. In-Degree and Out-Degree are measures on a directed graph like this one, where connections aren't always reciprocal. In-Degree is how many connections that other nodes have made to a certain node, so in this case something like time other users have retweeted, tweeted at or mentioned that twitter user. Out-degree is how many times that user retweeted, tweeted at or mentioned another user. Overall Graph Metrics will take measurements that apply to the entire graph, like the total number of vertices and edges.
  • When this calculation finishes you'll see that the tab Overall Metrics now contains information in it and the Vertices sheet now has information in the columns of In-Degree and Out-Degree
  • On the Vertices sheet, you can make the graph show nodes that have a higher in-degree as (the ones being tweeted to, retweeted or mentioned) a different color than ones with a lower in-degree using the Visual Properties columns. Click on the In-Degree column and then sort it largest to smallest
  • Highlight the rows with an in-degree of 50 or over in the column Color (column B). Right-click the dropdown at the top,choose Select Color and click on the red swatch. Select the rows with an in-degree of 49 to 10, choose Select Color in the same way and click on one of the orange swatches. You'll see this time it populates with three numbers separated by commas. These are that shade of orange's RGB values. Select the rows remaining and choose the the light blue on the Select Color Menu
  • Next go to the Edges sheet. Go over to the Relationship column, and sort by that column alphabetically. The same way that choosing different colors for nodes based on the categories they fall in lets you tell more about the nodes in the graph, this will let you see more about the relationships in the graph. Highlight the column Color (column C) where the Relationship is Mentions make and choose the purple swatch on the Select Color menu. For Replies choose green, and for Tweets choose black. 

Graphing Sheet

Now that your graph will have some symbology indicating which nodes belong to which category, you can create a graph. You'll see at the top of the top of the sheet is a window called Document Actions which by default shows information about Node XL. This is where your graph will be displayed. 

  • In the NodeXL tab, you'll see a couple of dropdowns listing Type and Layout.  This is where you can make decisions about what method will be used to design your graph. For now, we'll just go with the options of Directed and Fruchterman. Click on Show Graph.
  • When the display in your Document Actions window changes, it will look something like this:
    A network graph connecting various tweets. There are three large clusters containing most of them.
  • Based on the colors that you decided upon, you can see that most of the nodes have rather low degrees, but a few have higher degrees. This makes sense if you take into account the structure of Twitter. A few people will make a tweet that becomes popular and is passed on by other users. Most of the connections are mentions, 
  • If you want to explore where the connections are, you can click on a given vertex (node) and it will highlight in red all the different connections made to it on the graph. Hovering will show you the twitter handle and the tweet associated with that point.
    When a node is clicked on, all of its connections appear in red and you can read the tweet.
  • When you do this it will also highlight the affiliated lines on the Edges and Vertices sheet of the edges associated with that node as well as the Vertex.
  • This is just one layout possibility though. You can try one of the others by clicking on the Layout dropdown,  choosing Harel- Koren Fast-Multiscale and clicking Refresh Graph
    A more spacious layout of the network graph.
  • You can see this layout emphasizes the distances between the points and that they aren't in many cases interconnected at all. It also makes a bit clearer which tweets are the ones that connect the different more separated groups
  • You can try out the different settings for lauouts but the top two (Fructerman-Reingold and Harel-Koren) seem to be the most illustrative of what is going on with a group that contains this many datapoints
  • Using Dynamic Filters, you can change the dates that the graph displays by changing the dates on the calendar, or by using the sliding arrows. 
  • You can also go to either the Vertices and Edges sheets and use the filters at the top of a column to change what is showing up, for instance if you just want to filter to texts in the Pacific Time Zone, click on the filter arrow at the top of the Time Zone column and choose that designation
  • And then refresh the graph, and you'll see that it will have changed, and that all of the tweets that are filtered out are now black. It looks like a lot of the tweets that were gathered were not in the Pacific Time Zone. 
    The existing network graph, but now most of the nodes are black because they weren't within what it was being filtered for.


If it isn't very clear on the graph which tweets are most densely related to each other, you can use NodeXL's analysis mechanisms to figure out which node share commonalities in who they are connected to.

  • In the NodeXL ​tab, click on Groups and choose Group by Cluster 
  • You have a couple of options for what method to use, choose Clauset-Newman-Moore. Give it a few minutes to process, and when it finishes it will open up to the Groups tab, and you'll see that it now has information printed in it. 
    There are rows for each group with information on their color and shape.
  • Groups contains the numbering of the group and what color and shape the vertexes within it will be. Group Vertices lists which  vertices make up which group. In this case it's created 272 groups
  • Click Refresh Graph and you'll see that colors and shapes have changed based on which group the vertices are placed in. 
    The network analysis and the nodes are different colors by group.
  • To highlight which nodes are in which group, click on each row in the Group sheet and that group's nodes and edges will  be highlighted in red on the graph.
  • You probably noticed that there are a whole lot of groups and hence a whole lot of extra shapes. This is in part because of items like tweets that are not connected to any other node - those with the circular black arrow. You don't really need each of those to have a separate group, so you can redo the Group by Cluster and this time check the box for Put all neighborless vertices into one group. This will mean that instead of each of those individual users that did not get mentioned or followed being a separate group, they'll all be in one group and hopefully your graph will be easier to read. Click OK
  • When it is done processing, go back to the Groups tab and you'll see that at least now there are 115 groups instead of 272. 
  • When you click on Refresh Graph, you'll hopefully see a much more organized picture. All of the nodes that are only connected to themselves now share one color.
  • If you change the graph layout to Harel-Koren you'll see that the groupings are made a bit clearer
  • There is a second choice for how NodeXL can group by cluster and that's Wakita-Tsurumi. This is a method designed for communities with a large number of nodes, so it may help you to make more sense of this graph. To see how this method differs, go to the option for  Group by Cluster again, choose that Wakita-Tsurumi and click okay
  • You have a couple of more groups this way, but overall, at least in my graph, this doesn't tell me any more than the existing color choices that I made in the last section of this tutorial.
  • If you want to create the groups yourself, you can also group by an attribute of the different vertices. Like, say, Time Zone. In the NodeXL tab, click on Groups Group by Vertex Attribute. From the dropdown, select which of the attributes you want it to be grouped by. In this case, select Time Zone and click OK.
  • The Groups sheet in your workbook now has group names designated based on the Time Zone reported for the tweet. Click on Refresh Graph. 
  • You'll see most are now light blue (the color for unknown) so this isn't as useful as you might have liked, but in a graph where you have greater control over attributes that are written in and making sure that you always have information for that column, this can be a useful thing
  • You can also group by how many tweets overall a person has done.
    • First, sort by smallest to largest to see what kind of number distribution you have. 
    • Click on Group > Group by Vertex Attribute and choose Tweets. Choose that the column's values are Numbers. Add in the ranges that you'd like the new groups to start at. I've chosen 200, 500, 1,000, 2,500, 5,000, 10,000, 20,000, 50,000, 100,000. If you don't put in a range it will just make one group. Click OK.
    • Then Refresh Graph and you'll see the graph changes. If you want to make it more evident which each belongs to which group, you can choose your colors more deliberately to move from one side of the spectrum to another, so cooler tones to warmer tones
    • They aren't in order so you'll need to go to the Vertices tab while highlighting each group in the Groups tab and then to the Vertices tab to see which are highlighted. I'll have it so cooler (blues, greens) tones mean lower tweets and warmer (reds, oranges) tones mean a larger number of tweets.
    • Refresh Graph. From this graph  you'll see that nodes that have their tweets being mentioned a lot, tended to be ones with a larger number of overall tweets.

Analyzing Your Network Graph

  • You can zoom in and out on the graph on certain points. For instance , maybe you are most interested in users that tweeted two different groups to see what may be unique about them.
    A zoom in on part of the map to show tweets that were connected to multiple groups.
  • You can click on these nodes and see if there are any common characteristics that tweets connecting two different clusters seem to have (i.e. are they jokes? do they offer additional commentary?) You can look for these connecting nodes, and use the sheet to label them, or make them larger or change their color.
    • For instance by clicking through this exchange you could see that this user both mentioned a video link of an audio engineer explaining the difference, and that of a tv show host interviewing a musician on which they heard, and different groups picked up on those tweets.
  • While currently the colors and shapes of the dots are determined by the group they are in, you can also change the color or shape scheme depending on the tweeter's time zone, by the time of the tweet by going over to the Edges sheet. Or if you were interested in whether the tweet was a joke, an explanation or some other commentary, you could change the coloring or shape based on that by editing the Visual Properties for that tweet on the Edges sheet.
  • If you want to continue adding to this graph but are stymied by the 2000 tweet limit imposed by using the basic level of NodeXL, you can open a new sheet, import a new set of data, copy and paste it to this sheet, and use the remove duplicate function in case you do get some of the same tweets. 

NodeXL is a relatively simple and free way to play around with analyzing Twitter networks. 

Learning Goals

NodeXL can be used for more than Twitter analysis. It's able to make graphs out of data you input manually and it allows you to do a lot of customization. In this lesson you'll create a NodeXL graph from previously created data about the interactions in the Shakespeare play A Midsummer Night's Dream. You'll customize the graph to display the information about the characters, the time scale and other information by using different colors and sizes for different categories. 


If you've already created the A Midsummer Night's Dream dataset in the previous tutorial for Palladio, you can use it here, otherwise the link to that data is below. 

Getting Started

  • Open the link to the Midsummer Night's Dream data spreadsheet and take a look at the headings to see how the information in it is structured. The different characters and information about their attributes is stored in the sheet Nodes. Information on the connections between them is stored in the sheet Links.
  • If you haven't already downloaded NodeXL from their site, visit their download centerUnzip the resulting folder you receive and run the installer.
  • Locate NodeXL Excel Template in your Start Menu and click to open it. 
  • It will open like a normal Excel sheet, except it already contains some of the column headers and sheets. However the rows so far contain no additional information below those columns. Scroll through the different sheets to get a sense of how the data is going to be organized. Generally when talking about network analyses, I like to use the words nodes, and connections(or links). This sheet uses the terms vertices and edges. If I switch between the two, that is why, but a node is a vertex and an edge is a connection or link between them.
    • It opens to the sheet Edges. This is where the data on the connections between the different vertices will be stored. A Vertex is the the entity that you are looking to examine the connections of, its plural is vertices. In this case they are the characters in the play. Each row on the Edges sheet stores information on a connection between two vertices, and has additional columns for how to represent those connections on the graph, as in what color to make the line. We'll be adding columns with information on the act and the scene.
    • The next sheet is Vertices. Each row represents a different vertex (or node). In this case the nodes are characters in the play, but nodes are the entities whose interconnections you want to explore. The additional columns allow for additional instructions on what color to make each node that can either be generated by the program, or customized by you.
    • After that comes Groups and Group Vertices. In Groups, you can set up the different categories you want the vertices to go into, and how the vertices in that group will be drawn. In Group Vertices, you assign the vertices to a particular group. This can be done manually, or the program can do so for you. For instance, you may want to separate the characters in this group in to men, women and unknown. Or you might want the program to separate out depending on its properties in the graph, how connected the nodes are or how many scenes they are in together.
    • The last sheet in this workbook Overall Metrics is where measurements from looking at the graph as a whole will be kept, such as the graph's density or other measures. 

Adding in Edges

The sheet that was created that contains the links, or connections between the different characters is what you'll be adding in on the Edges section of the sheet.

  • From the Midsummer Night's Dream spreadsheet in the Nodes tab take Stage Mate 1, Stage Mate 2 and copy them into the Vertex 1 and Vertex 2 columns.
    The contents in the Stage Mate 1 and Stage Mate 2 columns are placed into NodeXL in the Vertex1 and Vertex2 columns
  • Instead of copying over the other attributes straight into the next columns over like they are on your original sheet, you'll need to go over to where it says Add Your Own Column Here and switch that to say Act. The columns you see directly next to your Vertex 1 and Vertex 2 columns on the right are the ones that control the colors and styles of the vertices and if you move them over to accommodate other attributes, the template won't function correctly, and your graph won't work.
  • Change the column to the right of Act to say Scene. NodeXL will automatically change the color and add a dropdown option.
    Using the Add Your Own Column function to add columns for the Act and Scene
  • Paste in your data for the Acts and Scenes of these connections from your Links sheet in the Midsummer Night's dream data.

Adding in Vertices

Since you've manually entered in the edges, the vertexes won't automatically transfer over the way it did when you imported your twitter network. You'll have to add them in, but fortunately, you've already got them in the Nodes sheet in your Midsummer Night's Dream data. 

  • Copy the characters listed in the Nodes column on your Nodes sheet, and paste them underneath where it says Vertex  on your NodeXL sheet. 
    Transferring the Node information from the sheet to the Vertex column of NodeXL
  • Similar to what you did with the edges, even though on the original sheet, the columns for Group and Gender go right next to the Node column, on this sheet, you'll need to put those over to the right of the sheet where the option to Add Your Own Columns Here is highlighted in Column AC. The formulas that make the graphing possibilities of the sheet function because the other columns are all in the places that they are. 
  • Add the columns for the other attributes that you have for the nodes Group and Gender where it says Add Your Own Columns Here, and paste in the contents. 
    The contents of the original nodes sheet are transferred to the NodeXL sheet.

Starting Graph

With this amount of information, you can actually already make a graph. At the top of your sheet is a Document Actions window that is currently displaying information about NodeXL.

  • Click where it says Show Graph in that window, and it will show you the graph of just the nodes and their connections in plain black and grey. 
  • At this stage you can only tell the information about which nodes are connected to other nodes, though they aren't labeled so you do not know who they are. If you click on any node, it will highlight the edges connected to that node, and what other nodes those edges connect to. 
    The connections one node has to others highlighted in red
  • At this point it's a good idea to save what you've done so far, so you don't lose it, I've called it MidsummerNightsDream. Save it as an excel document.

Altering Colors and Adding Labels

With a well-made graph though, you'll want your viewer to be able to look at your graph and figure out what it is indicating without having to resort to looking at the accompanying table. You can assist in this by adding labels and colors that represent different information about the nodes and the links for them. 

  • In the menu that you'll see if you click on NodeXL Basic in the menu bar at the top, you'll see that there's an item called Autofill Columns.  Click on this icon to open the Autofill Columns menu. Some aspects of your graph can be changed as a batch so you don't have to go in and manually change each row. 
  • Since Groups is a divider that you've recorded for the different nodes (or vertices as they're called here) that you'd like displayed, let's start with that. Click to the Vertices tab and click on the dropdown next to Vertex Color and choose Group. Next click on the arrow next to options and choose Vertex Color Options.
  • In that window, choose what the column's values are. In this case they are Categories but if you had numerical data like for instance a character's age or number of lines, you might choose to display that information instead with a lighter or cooler color meaning a smaller number. For now, select Categories and choose OK. Click on Autofill  and the columns on your sheet in Color under Vertices will autofill with a randomly assigned color for each group
  • You can also do this for the labels for the Vertices. In the dropdown next to Vertex Label choose Vertex. This will fill the label column with the character names without you needing to manually copy and paste in each name. Click OK and then click on Refresh Graph and your vertices will now have a different color based on what group they are in
  • Unfortunately, you can't autofill the shapes column by categories, so if you want to have men, women and unspecified represented by different shapes, you'll have to do that manually. So sort the sheet by gender and assign a different shape for Man, Woman and Unspecified. In my case I've chosen Solid Square for ManSolid Diamond for Woman and Solid Triangle for Unspecified.
  • Click on Refresh Graph and now your viewer will be able to tell at a glance which clusters contain members of which group.
    There are labels and different colors for different nodes

From this new graph you can see visually which nodes seem to have a lot of different connections to other nodes. But for the edges, since they are placed on top of each other, it's difficult to convey just how many connections go into each vertex. So whether Oberon is on stage with Puck in all acts or just once in the whole play, there is only one line present between them which can make visualization of the level of connection that a node might have more difficult. This is somewhat resolvable in the next step where you'll calculate each node's degree (how many connections are made to it), which is another thing you'll be able to visualize.

Calculating Graph Metrics

Not all of a graph's metrics can be calculated in the NodeXL basic program but one of the more basic and useful ones is - degree. A vertex (or node's) degree is determined by how many links are connected to it. You'll be using NodeXL's metrics function to calculate what the degrees are for each of your nodes. 

  • In the NodeXL section of the menu, click on Graph Metrics. In the window that opens, check the boxes next to the first four options, which will measure the general qualities of the whole graph, as well as the degrees for each of the different nodes in the graph.
  • Click on Calculate Metrics and NodeXL will analyze the graph's overall connections, and how connected each node is. It will take you to the Overall Metrics tab which we'll be going over later, but for now, let's go back to the Vertices tab, since we'll be using this new option to change how the vertices appear on the graph. 
  • You'll see there's a whole new set of columns inserted into the Vertices sheet but the only one that is populated is Degree. Scroll through and click on a few to see what it means. You'll see that when you click on a vertex with a high degree number on the graph, it is connected to a higher number of other vertices, and a vertex with a lower number when highlighted has fewer connections. This is an important bit of information to convey to your audience, and you can do this by changing the size of the vertices in proportion to their degrees. 
  • The Autofill Columns option will come in handy again, so click on it. Click to the Vertices tab and in the dropdown next to Vertex Size choose Degree and then click on the arrow beside it and choose Vertex Size Options
  • Change the Max option to 20 and click OK and you'll see that the Size column has now had different options filled in, from 1 to 20 depending on how large the degree is. Click on Refresh Graph and it will now be represented on the graph.
  • You'll see that the graph now has different sized nodes on it, but it is still pretty crowded. The new network graph, the shape and color vary by way of the group nodes are in and the nodes are different sized based on degree
  • Click to the Overall Metrics sheet. This is where measurements for your graph as a whole are stored. Some measurements are self-explanatory, like you can see that the total number of vertices and edges are counted. Other measures that can tell you something about the graph are: 
    • Maximum Geodesic Distance, which in this graph is 3. This means that the maximum distance between two nodes is 3. Distance is a measure of how many other connections you would need to go through to get from one node to the other. So to get from Moth to Egeus, it would need to go 1) to Bottom 2) to Theseus or one of the other Royals and 3) from that Royal to Egeus.  The distance is 3. Average Geodesic Distance is 1.4, which means that for the most part, if nodes are not directly connected to each other, they are only one additional connection away.
    • Graph Density, which in this graph is .55. If no nodes are connected at all, that means a graph has a density of 0. If all nodes are connected directly to all other nodes, that means it has a density of 1. The measure in this graph says that it is somewhere in the middle of these two figures.
    • Minimum Degree, Maximum Degree, Average Degree and Median Degree along with the accompanying chart tell you a bit about the distribution of degrees among the node. You can see that on average, a node is connected to 12 other nodes.

Manually Altering Graph

If your graph looks like mine, the Royals group is rather snarled and clustered so it's difficult to read the labels for the different edges, and harder to tell how many acts any two characters appear in together. You can change this by manually moving different vertices.

  • To give you a larger graph canvas to work with hover over the boundary between the Document Actions section of your sheet where you have the graph and draw it down. 
  • Make sure that you have the arrow icon highlighted at the top of the graph then click on one of the Royals vertices that is bound in tightly with the others, and drag it down. I've chosen Hermia.
  • Drag each node that is crowded together outwards until your graph is more legible. Note however that this layout will change back if you refresh your graph again.

Using Filters

NodeXL doesn't have any kind of function to allow you to create multiple parallel edges. In other words, whether Bottom and Oberon are onstage in five scenes together, or just one, there will be one connecting edge between them. Any attempt to color say, Act I edges as blue and Act III edges as red, will just mean that the edge will be red and that other blue edge will be hidden underneath it. If you want to display connections between nodes differently depending on some attribute, you'll need to create a series of different graphs. Fortunately you can do this rather easily using filters, just like you would use to filter any other Microsoft Excel document.

  • In order to only display the connections between characters in Act I, go to the Edges section of your sheet and click on the dropdown arrow next to Act and make sure that only I is selected. Click OK and your sheet will change to represent only edges that occur in Act I. 
  • Click on Refresh Graph and the Graph will also change in appearance to only display the characters' interactions in Act I. 

a smaller graph where the differing groups are not connected

  • Play around the filters to change the acts displayed and then refresh the graph. Do any of the the acts contain a connection between all three groups of characters, or are those connections only made if you look at the play as a whole
  • If this were a larger project, you could try and make the same kind of graph for other Shakespeare plays and see how they compared. 


While you can save the spreadsheet you've created, and the settings that are used on the graph, if you want to use the graph as an illustration , you'll need to take a screenshot of it, since there isn't a way to save the graph as an image file. 

  • Using a screenshot software like PicPick, highlight the graph, and save it as an image. 
  • You'll also want to save as a NodeXL document so you have all the data and settings that you added to it.

If you want to see how my graph was composed, please see the below sheet which contains the graph, and the jpegs that contain the information for the different graphs for each act of the play.