Get access to all lessons in this course.
-
Advanced Data Wrangling and Analysis
- Overview
- Importing Data
- Tidy Data
- Reshaping Data
- Dealing with Missing Data
- Changing Variable Types
- Advanced Variable Creation
- Advanced Summarizing
- Binding Data Frames
- Functions
- Merging Data
- Renaming Variables
- Quick Interlude to Reorganize our Code
- Exporting Data
-
Advanced Data Visualization
- Data Visualization Best Practices
- Tidy Data
- Pipe Data Into ggplot
- Reorder Plots to Highlight Findings
- Line Charts
- Use Color to Highlight Findings
- Declutter
- Use the scales Package for Nicely Formatted Values
- Use Direct Labeling
- Use Axis Text Wisely
- Use Titles to Highlight Findings
- Use Color in Titles to Highlight Findings
- Use Annotations to Explain
- Tweak Spacing
- Customize Your Theme
- Customize Your Fonts
- Try New Plot Types
-
Advanced RMarkdown
- Advanced Markdown Text Formatting
- Tables
- Advanced YAML
- Inline R Code
- Making Your Reports Shine: Word Edition
- Making Your Reports Shine: HTML Edition
- Making Your Reports Shine: PDF Edition
- Presentations
- Dashboards
- Other Formats
-
Wrapping Up
- You Did It!
Going Deeper with R
Try New Plot Types
This lesson is locked
This lesson is called Try New Plot Types, part of the Going Deeper with R course. This lesson is called Try New Plot Types, part of the Going Deeper with R course.
Transcript
Click on the transcript to go to that point in the video. Please note that transcripts are auto generated and may contain minor inaccuracies.
Your Turn
Use one of the packages above to make a unique plot. For example, you might use dumbell plots in the
ggalt
package to show change in the Hispanic/Latino population from 2017-2018 to 2018-2019 for all districts.When you finish your plot, email it to me at [email protected]! I’d love to see what you come up with.
Heads up: You likely want to watch the solutions video because it involves reshaping the data to make it work with the ggalt
package.
Learn More
You can see all of the geoms built into ggplot here.
The documentation websites for the packages discussed in this lesson are below:
gganimate (you can see the sample plot shown in the video here )
patchwork (here's the tweet about it that went "nerd viral ")
cowplot (here's the Spotify visualization by Cedric Scherer made with it)
shadowtext (my tweet about the Financial Times plot is here ; the code used to make that plot is here , though note that it no longer appears to work)
To learn more about other things that. arepossible with ggplot, check out the awesome ggplot2 GitHub repository , which has a list of a lot of other great ggplot extensions to try out!
I'd also recommend looking at the Data to Viz website , which lists various visualization options and provides sample R code for each.
Finally, if you're not already following Tidy Tuesday , check it out! Every week, a new data set is released, which people then analyze and visualize. They post their results using the #TidyTuesday hashtag. The most incredible thing is that people often post their code alongside their visualizations so you can see how they did what they did.
Three regular Tidy Tuesday contributors I'd recommend following (their work is exceptional and they always post their code) are:
You need to be signed-in to comment on this post. Login.
Atlang Mompe
June 24, 2021
Hi David, I have loaded the janitor package like you did and ran the code on the solution just to see if it works but I get this error: Error in geom_dumbbell(colour_x = "gray", colour = "gray", colour_xend = "blue", : could not find function "geom_dumbbell" >
Atlang Mompe
June 24, 2021
This is the code from the solution: enrollment_by_race_ethnicity %>% filter(race_ethnicity == "Hispanic/Latino") %>% select(-c(race_ethnicity, number_of_students, district_id)) %>% pivot_wider(id_cols = district, names_from = year, values_from = percent_of_total_at_school) %>% clean_names() %>% slice(1:10) %>% ggplot(aes(x = x2017_2018, xend = x2018_2019, y = district, yend = district)) + geom_dumbbell(colour_x = "gray", colour = "gray", colour_xend = "blue", size_x = 3, size_xend = 1.5) + theme_student() + scale_x_continuous(label = percent_format())
Atlang Mompe
June 24, 2021
I also tried to install the ggalt package and it says: Error in library(ggalt) : there is no package called ‘ggalt’.
For this lesson, these are all the libraries that I have uploaded. library(tidyverse) library(hrbrthemes) library(scales) library(ggtext) library(extrafont) loadfonts() library(janitor) library(ggalt)
David Keyes
June 25, 2021
Hmm, that's odd. It definitely seems like you haven't installed ggalt. Can you try running
install.packages("ggalt")
again and then running your code again to see if it works?David Keyes
January 9, 2022
I do! The code to make it is here. I found this plot on Twitter originally.
David Keyes
January 10, 2022
Yup, it's the best!
Jeremy Danz
February 11, 2023
So, I tried re-creating the solution here, and despite changing various things, both the x and xend seem to be getting plotted at -1.0 ?
This is the code I've gotten to now - I was mostly changing bits to see what was broken and what the result of the changes was..
enrollment_by_race_ethnicity %>% filter(race_ethnicity == "White") %>% select(-c(race_ethnicity, number_of_students, district_id)) %>% pivot_wider(id_cols = district, names_from = year, values_from = percent_of_total_at_school)%>% slice(1:10)%>% ggplot(aes(x = 2017-2018, xend = 2018-2019, y = district, yend = district)) + geom_dumbbell(colour_x = "gray", colour = "gray", colour_xend = "red", size_x = 10, size_xend = 1.5) + theme_jd() + scale_x_continuous()
This is a link to the image it's producing .... https://imgur.com/a/PVKb9Td
thanks for any suggestions!
David Keyes
February 12, 2023
I think you need ticks around the variable names
2017-2018
and2018-2019
. See full code here.Andrew Paquin
May 27, 2023
When I try to pipe the data (after wrangling) directly into ggplot, etc., I don't get a graph in my Markdown doc. Instead, in my environment pane, I get a file denoted with a magnifying class instead of a table icon. When I open it, I see a lise of attributes (Name, type, value). If I don't pipe the data, it works as expected. Any ideas?
David Keyes
May 30, 2023
Can you share your code please?
Andrew Paquin
May 30, 2023
Sure. It's in my census project on Github (the file is MDI-param-report.Rmd). I'll commit and push now so that it is current. Here is a video showing what I've been experiencing: https://www.loom.com/share/819a48e20aeb466eb6daf7b5aef7eefb
David Keyes
May 30, 2023
Ah yes, I see the issue. You're actually saving your plot as an object called assets_22_23. Just remove that (start your code with the bind_rows() part) and you should get the plot.
Andrew Paquin
May 30, 2023
I think this is part of a basic misunderstanding I'm having regarding R. Questions in this video: https://www.loom.com/share/c846bbf7d58f4deda71178ffc5c815ef