background-image: url("images/nasa_global_preview.png") background-size: cover <br><br><br><br><br><br><br><br> .rightcol80[.white[ # .fancy[Visualizing Information] ### John Paul Helveston, Ph.D. ### The George Washington University ### Dept. of Engineering Management & Systems Engineering ]] --- class: middle, center # Download [this cheatsheet](https://jhelvy.github.io/stories-with-data/content/cheatsheet-dataviz.pdf) for today's content --- class: inverse, middle # .fancy[Visualizing Information] ## 1. The Psychology of Data Viz ## 2. 5 Data Viz Don'ts ## BREAK ## 3. 5 Data Viz Do's --- class: inverse, middle # .fancy[Visualizing Information] ## 1. .orange[The Psychology of Data Viz] ## 2. 5 Data Viz Don'ts ## BREAK ## 3. 5 Data Viz Do's --- class: center, middle, inverse # Check out John Rauser's [talk](https://www.youtube.com/watch?v=fSgEeI2Xpdc) on YouTube --- class: inverse, middle, center # Good visualizations optimize for our<br> .orange[Visual-Memory System] --- class: center ## A (very) simplified model of the visual-memory system <center> <img src="images/effective-charts-1.png" width=1000> </center> --- class: center ## A (very) simplified model of the visual-memory system <center> <img src="images/effective-charts-2.png" width=1000> </center> --- class: center ## A (very) simplified model of the visual-memory system <center> <img src="images/effective-charts-3.png" width=1000> </center> --- class: center ## A (very) simplified model of the visual-memory system <center> <img src="images/effective-charts-4.png" width=1000> </center> --- class: inverse, middle # Two objectives of effective charts: ## 1. Grab & direct attention (iconic memory) ## 2. Reduce processing demands (working memory) --- class: center # The power of pre-attentive processing ## Count all the "5"s -- <center> <img src="images/fives-1.png" width=500> </center> --- class: center # The power of pre-attentive processing ## Count all the "5s -- <center> <img src="images/fives-2.png" width=500> </center> --- class: center .leftcol[ <center> <img src="images/preattentive-attributes-1.png"> </center> ] -- .rightcol[ ## Pre-attentive attributes <br> <center> <img src="images/mtCarsScatterColor.png" width=500> </center> ] --- class: center .leftcol[ <center> <img src="images/preattentive-attributes-2.png"> </center> ] .rightcol[ ## Pre-attentive attributes ### .red[Numerical (ratio) data] <center> <img src="images/mtCarsScatterColor.png" width=500> </center> ] --- class: center .leftcol[ <center> <img src="images/preattentive-attributes-3.png"> </center> ] .rightcol[ ## Pre-attentive attributes ### .red[Numerical (ratio) data]<br>.blue[Categorical (ordinal) data] <center> <img src="images/mtCarsScatterColor.png" width=500> </center> ] --- class: inverse, middle, center # Not all pre-attentive attributes are equal --- class: center # Where is the red dot? -- .cols3[ <center> <img src="images/preattentive1.png" width=500> </center> ] -- .cols3[ <center> <img src="images/preattentive2.png" width=500> </center> ] -- .cols3[ <center> <img src="images/preattentive3.png" width=500> </center> ] --- # .center[For categorical data:] ### 1. Hue (color) > shape ### 2. Less is more (stay in working memory!) .cols3[ <center> <img src="images/preattentive1.png" width=500> </center> ] .cols3[ <center> <img src="images/preattentive2.png" width=500> </center> ] .cols3[ <center> <img src="images/preattentive3.png" width=500> </center> ] --- class: middle .leftcol[ <center> <img src="images/check-bad.png" width=100><br> <img src="images/preattentive-bad.png" width=600> </center> ] -- .rightcol[ <center> <img src="images/check-good.png" width=100> <img src="images/preattentive-good.png" width=650> </center> ] --- background-image: url("images/trump_covid.jpg") background-size: cover --- class: inverse, middle, center # What about _quantitative_ data? --- class: middle .leftcol60[ <center> <img src="images/cleveland-pub.png"> </center> ] -- .rightcol40[ Cleveland, W. S., & McGill, R. (1985). Graphical perception and graphical methods for analyzing scientific data. Science, New Series, 229(4716), 828-833. ] --- name: cleveland-estimation class: center, middle # Hierarchy for _numerical_ data <center> <img src="images/cleveland-hierarchy.png" width=1000> </center> .leftcol[ ## .left[More Accurate] ] .rightcol[ ## .right[Less Accurate] ] --- class: center # Example: Life expectancy in countries in Asia .leftcol[ ``` #> country lifeExp #> 1 Afghanistan 43.828 #> 2 Iraq 59.545 #> 3 Cambodia 59.723 #> 4 Myanmar 62.069 #> 5 Yemen, Rep. 62.698 #> 6 Nepal 63.785 #> 7 Bangladesh 64.062 #> 8 India 64.698 #> 9 Pakistan 65.483 #> 10 Mongolia 66.803 #> 11 Korea, Dem. Rep. 67.297 #> 12 Thailand 70.616 #> 13 Indonesia 70.650 #> 14 Iran 70.964 #> 15 Philippines 71.688 #> 16 Lebanon 71.993 #> 17 Jordan 72.535 #> 18 Saudi Arabia 72.777 #> 19 China 72.961 #> 20 West Bank and Gaza 73.422 #> 21 Syria 74.143 #> 22 Malaysia 74.241 #> 23 Vietnam 74.249 #> 24 Bahrain 75.635 #> 25 Oman 75.640 #> 26 Kuwait 77.588 #> 27 Taiwan 78.400 #> 28 Korea 78.623 #> 29 Singapore 79.972 #> 30 Israel 80.745 #> 31 Hong Kong, China 82.208 #> 32 Japan 82.603 ``` ] --- class: middle .leftcol30[ 1. Position on a common scale 2. Position on<br>non-aligned scales 3. Length 4. Angle 5. Area 6. Color saturation 7. **.red[Color hue]** <br> -
**Discriminate** -
**Rank** -
**Ratio** ] .right70[ <center> <img src="images/jr_hue.png" width=750> </center> ] --- class: middle .leftcol30[ 1. Position on a common scale 2. Position on<br>non-aligned scales 3. Length 4. Angle 5. Area 6. Color saturation 7. **.red[Color hue]** Sorting helps a bit... -
**Discriminate** -
**Rank** -
**Ratio** ] .right70[ <center> <img src="images/jr_hue_ordered.png" width=750> </center> ] --- class: middle .leftcol30[ 1. Position on a common scale 2. Position on<br>non-aligned scales 3. **.red[Length]** 4. Angle 5. Area 6. Color saturation 7. Color hue <br> -
/
**Discriminate** -
/
**Rank** -
**Ratio** ] .right70[ <center> <img src="images/jr_length.png" width=750> </center> ] --- class: middle .leftcol30[ 1. Position on a common scale 2. **.red[Position on<br>non-aligned scales]** 3. Length 4. Angle 5. Area 6. Color saturation 7. Color hue <br> -
/
**Discriminate** -
/
**Rank** -
**Ratio** ] .right70[ <center> <img src="images/jr_position_non_aligned.png" width=750> </center> ] --- class: middle .leftcol30[ 1. **.red[Position on a common scale]** 2. Position on<br>non-aligned scales 3. Length 4. Angle 5. Area 6. Color saturation 7. Color hue <br> -
**Discriminate** -
**Rank** -
**Ratio** ] .right70[ <center> <img src="images/jr_position_aligned_ordered.png" width=750> </center> ] --- class: middle .leftcol30[ 1. **.red[Position on a common scale]** 2. Position on<br>non-aligned scales 3. Length 4. Angle 5. Area 6. Color saturation 7. Color hue **.red[Sorting still matters!]** ] .right70[ <center> <img src="images/jr_position_aligned.png" width=750> </center> ] --- class: inverse, middle, center # .font130[Gestalt Psychology] <br> ### The whole has a reality that is entirely separate from the parts --- class: middle background-color: #FFFFFF <center> <img src="images/gestalt-panda.png" width=400> </center> --- class: center background-color: #FFFFFF # Reification <br> <center> <img src="images/gestalt-f1-logo.jpg" width=700> </center> --- class: center background-color: #FFFFFF .leftcol30[ # Emergence ] .rightcol70[ <center> <img src="images/gestalt-dog.jpg" width=600> </center> ] --- background-color: #FFFFFF .leftcol20[ # Law of Closure Our minds fill in the missing information ] .rightcol80[ <img src="images/jr_circle.png" width=600> ] --- class: inverse, center # .font120[Prägnanz] <br> ### We strongly prefer to interpret stimuli as regular, simple, and orderly -- .cols3[ <center> <img src="images/unsatisfying-pie.gif" width=500> </center> ] -- .cols3[ <center> <img src="images/unsatisfying-paper.gif" width=500> </center> ] -- .cols3[ <center> <img src="images/unsatisfying-lines.gif" width=500> </center> ] --- class: middle .leftcol30[ # .font120[Prägnanz] .font120[This should cause you cognitive pain] It's the graphical equivalent of this: <center> <img src="images/unsatisfying-pie.gif"> </center> ] .right70[ <center> <img src="images/jr_position_aligned.png" width=750> </center> ] --- class: middle .leftcol30[ # .font120[Prägnanz] .font120[This makes our brains happy] 😊 ] .right70[ <center> <img src="images/jr_position_aligned_ordered.png" width=750> </center> ] --- class: inverse, middle # .fancy[Visualizing Information] ## 1. The Psychology of Data Viz ## 2. .orange[5 Data Viz Don'ts] ## BREAK ## 3. 5 Data Viz Do's --- class: inverse # .center[Data Viz Don'ts] ## 1. Don't use chart chunk ## 2. Don't make 3D plots ## 3. Don't use pattern fills ## 4. Don't use red & green together ## 5. Don't lie --- class: inverse # .center[Data Viz Don'ts] ## 1. .orange[Don't use chart chunk] ## 2. Don't make 3D plots ## 3. Don't use pattern fills ## 4. Don't use red & green together ## 5. Don't lie --- class: inverse, middle .rightcol80[ # "_Erase non-data ink._" ## — Ed Tufte ] --- class: center, middle .leftcol[ <center> <img src="images/check-bad.png" width=80> <img src="images/monsterBars.png" width=500> </center> Figure 1.6: `Monstrous Costs’ by Nigel Holmes, in Healy, 2018 ] -- .rightcol[ <center> <img src="images/check-good.png" width=100> <img src="images/monsterBars-revised.png" width=480> </center> ] --- class: middle <center> <img src="images/less-is-more-darkhorse-analytics.gif" width=800> </center> .left[Figure 24.1: From Data Looks Better Naked by Darkhorse Analytics] --- class: center, middle .leftcol[ <center> <img src="images/check-bad.png" width=80> <img src="images/less-is-more-darkhorse-analytics-before.png" width=500> </center> ] -- .rightcol[ <center> <img src="images/check-good.png" width=100> <img src="images/less-is-more-darkhorse-analytics-after.png" width=480> </center> ] --- class: inverse # .center[Data Viz Don'ts] ## 1. Don't use chart chunk ## 2. .orange[Don't make 3D plots] ## 3. Don't use pattern fills ## 4. Don't use red & green together ## 5. Don't lie --- class: center, middle .leftcol[ ## Humans aren't good at distinguishing 3D space <center> <img src="images/penrose-stairs.png" width=400> </center> [Penrose Stairs](https://en.wikipedia.org/wiki/Penrose_stairs ), made famous by<br>M.C. Escher (1898-1972) ] -- .rightcol[ ## Ink proportions !=<br>true proportions <center> <img src="images/3dpies.png" width=500> </center> ] --- class: center, middle # Occlusion: geoms are obscured <center> <img src="images/3d-occlusion.png" width=400> </center> --- class: center, middle .leftcol60[ <center> <img src="images/3dbad.jpeg" width=100%> </center> ] .rightcol40[ # Multiple interpretations ] --- class: center, middle .leftcol40[ <center> <img src="images/check-bad.png" width=80> <img src="images/3d-occlusion.png" width=400> </center> ] -- .rightcol60[ <center> <img src="images/check-good.png" width=100> .border[<img src="images/facetedBars.png" width=600>] </center> ] --- class: center, middle # The third dimension distracts from the data ## (this is what Tufte calls "chart junk") <center> <img src="images/3d-chart-junk.png" width=700> </center> --- class: center, middle .leftcol60[ <center> <img src="images/check-bad.png" width=80> <img src="images/3d-chart-junk.png"> </center> ] -- .rightcol40[ <center> <img src="images/check-good.png" width=100> .border[<img src="images/simpleBars.png">] </center> ] --- class: inverse # .center[Data Viz Don'ts] ## 1. Don't use chart chunk ## 2. Don't make 3D plots ## 3. .orange[Don't use pattern fills] ## 4. Don't use red & green together ## 5. Don't lie --- class: middle background-color: #f8f8f8 <center> <img src="images/pattern_fills3.png" width=600> </center> --- class: middle, center .leftcol[ <center> <img src="images/check-bad.png" width=75> .border[<img src="images/pattern_fills1.png">] </center> ] -- .rightcol[ <center> <img src="images/check-good.png" width=100> .border[<img src="images/pattern_fills2.png">] </center> ] --- class: inverse # .center[Data Viz Don'ts] ## 1. Don't use chart chunk ## 2. Don't make 3D plots ## 3. Don't use pattern fills ## 4. .orange[Don't use red & green together] ## 5. Don't lie --- class: center # 10% of males and 1% of females are color blind -- .leftcol[ <center> .border[<img src="images/colorBlindBad1.png">] </center> ] -- .rightcol[ <center> .border[<img src="images/colorBlindBad2.png">] </center> ] --- class: middle, center ## Facets can be used to avoid color altogether .leftcol[ <center> <img src="images/check-bad.png" width=75> .border[<img src="images/colorBlindBad1.png">] </center> ] -- .rightcol[ <center> <img src="images/check-good.png" width=100> .border[<img src="images/colorBlindBad3.png">] </center> ] --- class: inverse # .center[Data Viz Don'ts] ## 1. Don't use chart chunk ## 2. Don't make 3D plots ## 3. Don't use pattern fills ## 4. Don't use red & green together ## 5. .orange[Don't lie] --- class: center, middle # Bar charts should always start at 0 -- .leftcol60[ <center> <img src="images/check-bad.png" width=80> <img src="images/fox-news-bars.png"> </center> .font70[.left[ Image from http://livingqlikview.com/the-9-worst-data-visualizations-ever-created/ ]]] -- .rightcol40[ <center> <img src="images/check-good.png" width=100> .border[<img src="images/barchart_zero.png" width=330px>] </center> ] --- class: center, middle # Don't cherry pick your data --- .leftcol[ <center> <img src="images/check-bad.png" width=50> <img src="images/wsj_food.png" width=400> </center> https://x.com/PEWilliams_/status/1760688839193231550?s=20 ] -- .rightcol[ ### .center[Don't cherry pick your data] <center> <img src="images/check-good.png" width=70> <img src="images/household-expenditures.png" width=100%> </center> ] --- .leftcol[ <center> <img src="images/gun-deaths.png" width=500> </center> ] .rightcol[ ## Use common conventions - "Up" on Y axis should mean larger - Time moves left to right <br><br><br><br><br><br><br><br><br><br> .font80[https://www.livescience.com/45083-misleading-gun-death-chart.html] ] --- class: center, middle # Make sure your chart makes sense <center> <img src="images/fox-news-piechart.png" width=600> </center> .font70[.left[ Image from Image from http://livingqlikview.com/the-9-worst-data-visualizations-ever-created/ ]] --- class: inverse, center
−
+
05
:
00
# Intermission! ## Stand up, Move around, Stretch! --- class: inverse, middle # .fancy[Visualizing Information] ## 1. The Psychology of Data Viz ## 2. 5 Data Viz Don'ts ## BREAK ## 3. .orange[5 Data Viz Do's] --- class: inverse # .center[Data Viz Do's] ## 1. Annotate your charts ## 2. Eliminate legends ## 3. Show amounts with bars, dots, and lollipops ## 4. Show proportions with bars and waffles (not pies) ## 5. Show trends with lines, bars, and heatmaps --- class: inverse # .center[Data Viz Do's] ## 1. .orange[Annotate your charts] ## 2. Eliminate legends ## 3. Show amounts with bars, dots, and lollipops ## 4. Show proportions with bars and waffles (not pies) ## 5. Show trends with lines, bars, and heatmaps --- class: center, middle, inverse # Text is usually the single most important component on your chart --- class: middle <center> <img src="images/eye_tracking.gif" width=900> </center> .font80[Michelle Borkin, et al. (2015) [Beyond Memorability: Visualization Recognition and Recall](https://ieeexplore.ieee.org/document/7192646)] --- class: center <center> <img src="images/titles_matter.jpg" width=600> </center> .font80[https://www.reddit.com/r/dataisugly/comments/odk65x/this_was_not_the_right_headline_to_go_along_with] --- .leftcol60[ <center> <img src="images/protein.png" width=100%> </center> ] .rightcol40[ ## Good annotations should tell a story <br><br><br><br><br><br><br><br><br><br> .font80[https://ourworldindata.org/less-meat-or-sustainable-meat] ] --- class: center .leftcol70[ <center> <img src="images/measles-line.png" width=100%> </center> ] .rightcol30[ ## Use reference lines to provide context ] --- class: inverse # .center[Data Viz Do's] ## 1. Annotate your charts ## 2. .orange[Eliminate legends] ## 3. Show amounts with bars, dots, and lollipops ## 4. Show proportions with bars and waffles (not pies) ## 5. Show trends with lines, bars, and heatmaps --- class: center, middle, inverse # Legends suck --- class: center # Legends suck .leftcol[ ### Legends require look-up task <center> <img src="images/fed_spending_legend.png" width=100%> </center> ] -- .rightcol[ ### Direct labeling is much better <center> <img src="images/fed_spending_annotate.png" width=100%> </center> ] --- class: middle, center ## Directly label things to remove legends! .leftcol[ <center> <img src="images/check-bad.png" width=75> .border[<img src="images/milk_region.png">] </center> ] -- .rightcol[ <center> <img src="images/check-good.png" width=100> .border[<img src="images/milk_region_label.png">] </center> ] --- class: center ## Exception: When you have repeated categories <center> .border[<img src="images/pattern_fills2.png" width=600>] </center> --- class: center ## If you use a legend, use **few categories as possible** .leftcol[ <center> <img src="images/check-bad.png" width=75> <img src="images/milk-compare-dodged-bad.png" width=100%> </center> ] .rightcol[ <center> <img src="images/check-good.png" width=100> <img src="images/milk-compare-dodged-good.png" width=100%> </center> ] --- ## .center[Or use faceting to eliminate the legend!] .leftcol[ <center> <img src="images/check-bad.png" width=75> <img src="images/milk-compare-dodged-bad.png" width=100%> </center> ] .rightcol[ <center> <img src="images/check-good.png" width=100> <img src="images/milk-compare-facet.png" width=600> </center> ] --- class: inverse # .center[Data Viz Do's] ## 1. Annotate your charts ## 2. Eliminate legends ## .center[.orange[Match your chart type to your message]] ## 3. Show amounts with bars, dots, and lollipops ## 4. Show proportions with bars and waffles (not pies) ## 5. Show trends with lines, bars, and heatmaps --- class: middle <center> <img src="images/norman_door.gif" width=900> </center> --- .leftcol[ # Norman door (n.): 1. A door where the design tells you to do the opposite of what you're actually supposed to do. 2. A door that gives the wrong signal and needs a sign to correct it. ] .rightcol[ <center> <img src="images/design_of_everyday_things.jpg" width=400> </center> ] --- class: center .leftcol[ # Norman door <center> <img src="images/check-bad.png" width=80> <img src="images/norman_door.jpg" width=250> </center> ] -- .rightcol[ # Non-Norman door <center> <img src="images/check-good.png" width=100> <img src="images/non-norman-door.jpg" width=480> </center> ] --- class: inverse, middle, center # Match your chart type to your message --- class: inverse, middle, center # Show amounts with: .cols3[ <br> <center> <img src="images/bar.png" width=350> <center> ] .cols3[ <center> <img src="images/dots.png" width=280> <center> ] .cols3[ <center> <img src="images/lollipop.png"> <center> ] --- class: center, middle .cols3[ <center> <img src="images/bar.png"> <center> ## Bar chart <center> <img src="images/federal_spending_bars.png"> <center> ] .cols3[ <center> <img src="images/dots.png" width=160> <center> ## Dot chart <center> <img src="images/federal_spending_dots.png"> <center> ] .cols3[ <center> <img src="images/lollipop_rotated.png" width=330> <center> ## Lollipop chart <center> <img src="images/federal_spending_lollipop.png"> <center> ] --- class: center ## Bars are good for highlighting specific categories <center> <img src="images/federal_spending_bars_highlight_title.png" width=700> <center> --- class: middle, center ## Rotate axes if you can't read them .leftcol45[ <center> <img src="images/check-bad.png" width=80> .border[<img src="images/mpg_bars_bad.png" width=400>] </center> ] -- .rightcol55[ <center> <img src="images/check-good.png" width=100> .border[<img src="images/mpg_bars_flipped.png" width=750>] </center> ] --- class: middle, center ## Default order is almost always wrong .leftcol[ <center> <img src="images/check-bad.png" width=80> Ordered by alphabet (default) .border[<img src="images/mpg_bars_flipped.png">] </center> ] -- .rightcol[ <center> <img src="images/check-good.png" width=100> Ordered by count .border[<img src="images/mpg_bars_flipped_sorted.png">] </center> ] --- class: center ## Exception: When the order matters <center> .border[<img src="images/wildlife-months-bar.png" width=900>] </center> --- ## Use lollipops when: ### - The bars are overwhelming<br> - You're not highlighting categories <!-- Idea from https://www.data-to-viz.com/graph/lollipop.html --> .leftcol[ <center> <img src="images/life_expectancy_bars.png" width=400> <center> ] .rightcol[ <center> <img src="images/life_expectancy_lollipop.png" width=400> <center> ] --- class: center ## Or use dots .leftcol[ <center> <img src="images/life_expectancy_lollipop.png" width=500> <center> ] .rightcol[ <center> <img src="images/life_expectancy_dots.png" width=500> <center> ] --- class: inverse # .center[Data Viz Do's] ## 1. Annotate your charts ## 2. Eliminate legends ## 3. Show amounts with bars, dots, and lollipops ## 4. .orange[Show proportions with bars and waffles (not pies)] ## 5. Show trends with lines, bars, and heatmaps --- class: inverse, middle, center # Show proportions with: .leftcol[ <br> <center> <img src="images/bar.png" width=350> <center> ] .rightcol[ <center> <img src="images/waffles.png" width=400> <center> ] --- class: center, middle .leftcol[ # Bar charts <center> <img src="images/milk_2017_bars_stacked_rotated.png"> <center> ] .rightcol[ # Waffle charts <center> <img src="images/milk_waffle_2017.png" width=450> <center> ] --- class: middle, center # Stacked bars are rarely a good idea --- class: middle, center # Stacked bars are rarely a good idea .border[ <center> <img src="images/jr_diamonds_bars_stacked.png" width=700> </center> ] --- class: middle, center ## "Parallel coordinates" plot is a good alternative <center> <img src="images/jr_diamonds_line_cut.png" width=750> </center> --- class: center ## .center[Where stacking is useful] .cols3[ <center> <img src="images/check-bad.png" width=55> <img src="images/milk_2017_bars_stacked_toomany.png" width=300> </center> ] .cols3[ <center> <img src="images/check-good.png" width=80> <img src="images/milk_2017_bars_stacked.png" width=300> </center> ] .cols3[ ### **With 2 to 3 groups** ### Proportions over time ] --- ## .center[Where stacking is useful] .leftcol65[ <center> <img src="images/bechdel-stacked.png"> </center> .font70[https://fivethirtyeight.com/features/the-dollar-and-cents-case-against-hollywoods-exclusion-of-women/] ] .rightcol35[ ### With 2 to 3 groups ### **Proportions over time** ] --- ## .center[Where stacking is useful] .leftcol65[ <center> <img src="images/jr_phones_area.png"> </center> ] .rightcol35[ ### With 2 to 3 groups ### **Proportions over time** ] --- class: middle, center # Pies are rarely a good idea --- class: middle, center background-color: #FFFFFF .leftcol45[ <center> <img src="images/check-bad.png" width=80> <img src="images/statesPie.png" width=750> </center> ] -- .rightcol55[ <center> <img src="images/check-good.png" width=100> <img src="images/statesBar.png" width=750> </center> ] --- class: middle background-color: #FFFFFF .leftcol45[ # Exceptions: ## - Small data ## - Simple fractions ## - If sum of parts matters ] -- .rightcol55[ <center> <img src="images/bundestag-pie.png"> </center> ] --- class: middle, center background-color: #FFFFFF # Best pie chart of all time <center> <img src="images/pie-pyramid.png" width=900> </center> --- background-color: #fff class: center ## The best pies are **square pies** <center> <img src="images/square-pies-rule.png" width="750"> </center> .font80[https://eagereyes.org/blog/2016/a-reanalysis-of-a-study-about-square-pie-charts-from-2009] --- class: middle .leftcol60[ <center> <img src="images/milk-waffle.png" width=100%> </center> ] .rightcol40[ # Waffles make rough comparisons easy ] --- class: inverse # .center[Data Viz Do's] ## 1. Annotate your charts ## 2. Eliminate legends ## 3. Show amounts with bars, dots, and lollipops ## 4. Show proportions with bars and waffles (not pies) ## 5. .orange[Show trends with lines, bars, and heatmaps] --- class: center # For small number of categories, **lines work** .leftcol[ <center> <img src="images/GlobalTemp.png" width=100%> </center> .font80[https://climate.nasa.gov/vital-signs/global-temperature/] ] -- .rightcol[ <center> <img src="images/milk_region_label.png" width=100%> </center> ] --- class: center # For small number of categories, **bars work** <center> <img src="images/hotdog-bar-winner.png" width=600> </center> --- class: center ## With many categories, lines don't work <center> <img src="images/internet_region_line_label.png" width=750> </center> --- class: center ## With many categories, **summary lines work** <center> <img src="images/measles-line.png" width=600> </center> --- class: center ## With many categories, **heatmaps work** <center> <img src="images/measles-heatmap.png" width=700> </center> --- class: center, middle, inverse # Bonus suggestions! --- class: center ## With **more than 2** things, dodged bars can get confusing Still comparing 2 time periods, but across **10** categories <center> <img src="images/milk-compare-dodged-toomany.png" width=600> </center> --- .leftcol[ Dumbbell charts highlight: - Compare **magnitudes** across two periods / groups <center> <img src="images/milk-dumbbell.png" width=450> </center> ] -- .rightcol[ Slope charts highlight: - _Change_ in **rankings** - Highlight individual categories <center> <img src="images/milk-slope.png" width=450> </center> ] --- class: middle, inverse, center # Consider using tables for small data --- class: middle background-color: #FFFFFF <center> <img src="images/pole-pie1.png" width=900> </center> --- class: middle background-color: #FFFFFF <center> <img src="images/pole-pie2.png" width=900> </center> --- class: center, middle ## Who do you think did a better job in tonight’s debate? | | Clinton | Trump | |-|-|-| | Among Democrats | 99% | 1% | | Among Republicans | 53% | 47% | --- class: inverse # Your turn - go [here](https://docs.google.com/presentation/d/1sL3k4S2e7shShlu_crNxunEH8qMHtuOH_vl_a_Mc1wI/edit?usp=sharing) For your "bad" visualization: 1) Identify where the graphic falls on Cleveland's pattern recognition hierarchy <center> <img src="images/cleveland-hierarchy.png" width=1000> </center> 2) Any design rules that are broken 3) Suggest at least two improvements
−
+
10
:
00
--- class: middle <center> <img src="images/army_budget_bad.jpg" width=900> </center> --- class: middle .leftcol40[ <center> <img src="images/prisoners_bad.png" width=500> </center> ] -- .rightcol60[ <center> <img src="images/prisoner_bars.png" width=900> </center> ] --- class: middle .leftcol40[ <center> <img src="images/junk-life-expectancy-bad.png" width=500> </center> ] -- .rightcol60[ <center> <img src="images/junk-life-expectancy-good1.png" width=400> <img src="images/junk-life-expectancy-good2.png" width=400> </center> ] --- class: middle .leftcol45[ <center> <img src="images/bears-bad.png" width=500> </center> ] -- .rightcol55[ <center> <img src="images/bears-good.jpeg" width=600> </center> ] --- class: middle .cols3[ <center> <img src="images/clinton-tweet-venn-1.png"> </center> ] -- .cols3[ <center> <img src="images/clinton-tweet-venn-2.jpg"> </center> ] -- .cols3[ <center> <img src="images/backgroundChecks.png"> </center> ]