You get to pick your own dataset again.
Here are some repositories with many, many datasets to choose from:
You do not have to pick a dataset from one of these places. These are just suggestions.
Your data must be contain a mix of categorical and continuous variables and be complex enough that you can create 8 interesting graphs (so datasets with only a few variables will not work).
You CANNOT use the same dataset that you or any of your teammates used for the static graphics group project.
I strongly encourage groups to pick different datasets, so that no group is using the same dataset. If several groups choose the same dataset, I may ask you to switch.
Be sure to read the guidelines on the graphics below. These will certainly influence what datasets you choose.
You cannot use a dataset that you have used before in this class or in any other class.
All groups must decide what dataset they are using by the due time of Lab 10 on Friday, 4/27.
(10% of your Final Grade)
Your primary task in this project is to design an interactive, web-based, data visualization tool via Shiny to explore and analyze your dataset.
See here for examples of nice Shiny templates.
Each group’s app should be hosted publicly on RStudio’s ShinyApps.io Website. At least one person in your group should create a free account to do this.
Each group is required to use a Shiny theme or to design and use your own Shiny theme from scratch. For more info, see here:
And for more information on Flex Dashboard, see here:
Each group member is required to create two graphics.
It’s the end of the semester, so the graphs you make should be perfect. Take care to create excellent graphs that are informative and easy to understand. All graphs should be properly labeled, titled, etc.
Your graphs should tell a somewhat cohesive story. Come up with some general questions you want to answer or explore with your dataset, and use your graphs to walk the viewer through a comprehensive analysis of those questions. Use your graphs to demonstrate your findings and conclusions and/or to help the app’s users find personalized answers.
All graphs must have some interactive (e.g. via Shiny interactivity, Plotly, etc) or dynamic (e.g. animation) aspect to them.
There should be a variety of graph types. As in the poster project, you should not have too many graphs that show a single variable, nor too many graphs of the same type.
Coordinate with your teammates to use consistent design and the same ggplot theme across all of the different graphs. Keep it looking clean and professional.
There must be a variety of interaction types. (For instance, you cannot just add default Plotly zoom/pan interaction to all 8 graphs and do nothing else interactive.)
Each group is required to use Shiny widgets for interaction in at least two of their graphs.
Each group is required to use Plotly in at least two of their graphs. For examples on Plotly, see here:
The app should be easy to use and clear to understand, even for someone who has not read your writeup document (see Task 2 below). You do not need a lot of in-app written text, but:
The version of your app that is posted to ShinyApps.io by noon on Friday 5/11/18 is the version that will be graded.
The code and data for your app must also be uploaded to Canvas by noon on Friday 5/11. This should be uploaded as a .zip file, containing a folder with all the necessary R files, datasets, etc. You should be able to unzip this file on a new computer with RStudio and use shiny::runApp("path/to/your/folder") to launch the app. (Test this!)
You should design your Shiny apps so that they work on any computer. Reading data from a public location, or from a location within the directory containing the Shiny app, is the best strategy to ensure that they work on other computers.
(5% of your Final Grade)
Each group will write a short document to accompany their Shiny app.
The format should be a simple .Rmd text document and its knitted .html version. You should include a ShinyApps.io link to your final app.
Introduction: The writeup should begin by introducing the dataset and your main questions. Cite the data source here (no need to put data-source captions on every graph separately), and describe important features (number of variables and observations; what do individual cases represent; any interesting aspects of the data collection process; etc.).
Example: Next, walk the reader through an example of using the app.
For each graph, describe what’s being plotted, the main takeways of the graph, and any notable relationships, distributions, associations, patterns, etc. in the graph.
For each interactive feature, demonstrate how to use it to find some interesting feature of the dataset or to answer some question that otherwise would not be seen/answered.
(The audience for this Example section is a potential user of the app, perhaps your boss or the client who commissioned the project. You are answering “What can we do with this?”)
Design Choices: The writeup should also describe the design choices you made. For each of your graphs and interactive features, explain: Why did you include this graph/interaction? How does it help us to explore/understand the dataset better than alternative graphs/interactions you could have used instead?
(The audience for the Design Choices section is a fellow data scientist, trying to learn how to make better graphics & apps, perhaps at an R Meetup or a statistics conference. You are answering “Why did you design it this way and not another way?”)
You may also add Conclusions and/or Acknowledgements sections if appropriate.
Appendix: Finally, the writeup must include an appendix describing how you revised your draft app, based on the feedback your team received in the Lab 11 critiques.
Keep it concise. Each section should be no more than a couple of short paragraphs.
Turn in your team’s writeup on Canvas by noon on Friday, 5/11. Include both the Rmd and html files.
(5% of final grade)
Complete the peer and self evaluation form. This form will be released at a later date.
Complete the course evaluation form. This form will be released at a later date.
These forms must be completed by noon on Friday, 5/11.
Each student will work with a group of 3 or 4 people. See your group assignments on Canvas.
Homework 11 introduces you to Shiny. You will work with your final-project groups to submit the homework. Each group should designate one person to submit the assignment.
Also make sure that everyone has read RStudio’s 7-lesson written tutorial on Shiny. The 1st lesson starts here.
In Lab 10, you will work with your groups to choose a dataset for the final project. You will also practice using different layouts with Shiny, and at least one team member will make a free ShinyApps.io account to host your team’s apps online.
If you cannot attend Lab on Friday, coordinate with your group to ensure that your group members are turning in the assignment, and make plans to make up for the work you missed. In general, be a good group member.
For Homework 12, you will submit a complete draft of your final-project Shiny app (including draft versions of all graphs).
As usual, late assignments will not be accepted. Also, do not submit an incomplete or broken app. It is your responsibility to plan ahead and finish the draft early enough to debug any problems before the deadline.
For Lab 11, you will critique several other teams’ draft projects.
Each group must have completed their Shiny app (including all graphs) and their writeup. We will also expect you to incorporate feedback from the Lab 11 critiques.
You are also required to submit an evaluation of yourself, your group members, and the course in general.
The final Interactive Graphics Group Project is worth 20% of your final grade. This will be divided as follows:
As on the poster project, if you have poor evaluations from other group members, it will reduce your individual grade to a lower fraction of the group’s baseline grade.
Your Shiny app will earn a high grade if you…
Your writeup will earn a high grade if you…
You will earn a high grade based on group member evaluations if you…
Your peer/self/course evaluations will earn full credit if you complete them on time and include thoughtful feedback.
Remember to review the teamwork handouts and resources, from CMU’s Global Communication Center, to prevent or manage conflicts in group work:
Remember lessons from the New York Times: One useful kind of interactive app is an analysis of the dataset, with clear takeaways. The analysis should make sense even if nobody plays with the interactions beyond switching tabs to read the whole thing. But the interactions-with-graphs (tooltips, sliders, etc.) should reveal useful additional information and allow users to dig deeper.
Remember the BBC and OECD examples: One way to be engaging is to help readers “find themselves” in the data. Find connections between “their” piece of the data and others, or highlight the biggest contrasts between “their” data and any outliers.
Remember past student project examples: Use a clean layout, introduce the project and dataset with a short overview, and design the text/graphs/interactions in a way that helps the audience.