Communication and Social Networks (Spring 2021)/Dutch School Data Visualization challenge: Difference between revisions

From CommunityData
No edit summary
Line 20: Line 20:
* [https://raw.githubusercontent.com/jdfoote/Communication-and-Social-Networks/spring-2021/resources/school_graph_nodes.csv Node data]
* [https://raw.githubusercontent.com/jdfoote/Communication-and-Social-Networks/spring-2021/resources/school_graph_nodes.csv Node data]
* [https://raw.githubusercontent.com/jdfoote/Communication-and-Social-Networks/spring-2021/resources/school_graph_edges.csv Edge data]
* [https://raw.githubusercontent.com/jdfoote/Communication-and-Social-Networks/spring-2021/resources/school_graph_edges.csv Edge data]
Descriptions of what each measure means are at [http://www.stats.ox.ac.uk/~snijders/siena/tutorial2010_data.htm this site], maintained by the people who collected the data.


To import the data you can save the edge and node data files to your computer and then import them into R.
To import the data you can save the edge and node data files to your computer and then import them into R.
Line 30: Line 32:
G = graph_from_data_frame(d=edges, v=nodes) %>% as_tbl_graph()
G = graph_from_data_frame(d=edges, v=nodes) %>% as_tbl_graph()
</syntaxhighlight>
</syntaxhighlight>
== The data ==
The R Markdown file linked above explains that I created 2 igraph objects for you:
* <code>G</code> is a multiplex network, which includes both friendships and edges which represent whether two people went to grade school together
* <code>friend_net</code> is just a simplified version of <code>G</code>, where I removed the grade school edges.
In order to load these igraph objects into R you will need to run
<code>load(url('https://github.com/jdfoote/Communication-and-Social-Networks/raw/master/activities/school_graph.Rdata'))</code>.
This should grab the igraph objects <code>G</code> and <code>friend_net</code>, and load them into your environment. Descriptions of both networks are in the R Markdown file.
Descriptions of what each measure means are at [http://www.stats.ox.ac.uk/~snijders/siena/tutorial2010_data.htm this site], maintained by the people who collected the data.
== Troubleshooting ==
Note that you may need to install the following packages to get my scripts to work:
<code>
install.packages('igraph')
install.packages('tidygraph') # Only for the second script
</code>
This will install these libraries on your computer, so that you can use them

Revision as of 00:12, 10 March 2021

The goal

In 2003 and 2004, researchers repeatedly surveyed a number of Dutch school students about their friendships and their behavior. They were particularly interested in the relationship between friendships and drinking behavior. They recorded information about alcohol use, gender, age, ethnicity (whether Dutch or not), and religion.

For this project, you will think of a question that you would like to visualize with this network. For example:

  • Are people who drink more more popular?
  • Are males or females more likely to have the same drinking behavior as their friends?
  • Are people of the dominant religion more likely to be popular? More likely to be friends with each other?

First, I want you to think about a question and draw on a piece of paper what you want the outcome to look like. For example, if you want to visualize whether people who drink are more popular, you may decide to color nodes by in-degree and change their size or shape based on drinking behavior.

Second, you will do your best to recreate your idea using tidygraph and ggraph. I would like you to turn in both your drawing and your


Resources

The reading on introducing `ggraph` and `tidygraph` actually uses this dataset. You can look to that for examples to build on (Here is the R Markdown file that I used to create the web page).

Data:

Descriptions of what each measure means are at this site, maintained by the people who collected the data.

To import the data you can save the edge and node data files to your computer and then import them into R.

Alternatively, the following code will download the files and create a graph object. You are welcome to reuse it.

nodes = read_csv('https://raw.githubusercontent.com/jdfoote/Communication-and-Social-Networks/spring-2021/resources/school_graph_nodes.csv')
edges = read_csv('https://raw.githubusercontent.com/jdfoote/Communication-and-Social-Networks/spring-2021/resources/school_graph_edges.csv')

G = graph_from_data_frame(d=edges, v=nodes) %>% as_tbl_graph()