| Preface |
|
vii | |
| Introduction |
|
xiii | |
|
Part I Foundational Skills |
|
|
|
1 Choose Tools to Tell Your Story |
|
|
1 | (12) |
|
Start Sketching Your Data Story |
|
|
1 | (3) |
|
Ten Factors When Considering Tools |
|
|
4 | (5) |
|
|
|
9 | (2) |
|
|
|
11 | (2) |
|
2 Strengthen Your Spreadsheet Skills |
|
|
13 | (34) |
|
Select Your Spreadsheet Tools |
|
|
15 | (2) |
|
Download to CSV or ODS Format |
|
|
17 | (2) |
|
Make a Copy of a Google Sheet |
|
|
19 | (1) |
|
|
|
20 | (1) |
|
Upload and Convert to Google Sheets |
|
|
21 | (2) |
|
Geocode Addresses in Google Sheets |
|
|
23 | (3) |
|
Collect Data with Google Forms |
|
|
26 | (2) |
|
|
|
28 | (3) |
|
|
|
31 | (2) |
|
Summarize Data with Pivot Tables |
|
|
33 | (5) |
|
Match Columns with VLOOKUP |
|
|
38 | (4) |
|
Spreadsheet Versus Relational Database |
|
|
42 | (5) |
|
3 Find and Question Your Data |
|
|
47 | (20) |
|
Guiding Questions for Your Search |
|
|
48 | (4) |
|
|
|
52 | (4) |
|
Mask or Aggregate Sensitive Data |
|
|
56 | (1) |
|
|
|
57 | (2) |
|
|
|
59 | (2) |
|
|
|
61 | (3) |
|
|
|
64 | (3) |
|
|
|
67 | (20) |
|
Smart Cleanup with Google Sheets |
|
|
68 | (1) |
|
Find and Replace with Blank |
|
|
69 | (2) |
|
Transpose Rows and Columns |
|
|
71 | (1) |
|
Split Data into Separate Columns |
|
|
72 | (3) |
|
Combine Data into One Column |
|
|
75 | (1) |
|
Extract Tables from PDFs with Tabula |
|
|
76 | (3) |
|
Clean Data with OpenRefine |
|
|
79 | (8) |
|
5 Make Meaningful Comparisons |
|
|
87 | (12) |
|
Precisely Describe Comparisons |
|
|
87 | (3) |
|
|
|
90 | (3) |
|
Beware of Biased Comparisons |
|
|
93 | (6) |
|
Part II Building Visualizations |
|
|
|
|
|
99 | (58) |
|
|
|
103 | (10) |
|
|
|
113 | (1) |
|
|
|
114 | (7) |
|
|
|
121 | (5) |
|
Pie, Line, and Area Charts |
|
|
126 | (5) |
|
|
|
131 | (1) |
|
|
|
132 | (5) |
|
|
|
137 | (2) |
|
Scatter and Bubble Charts |
|
|
139 | (7) |
|
|
|
146 | (1) |
|
Scatter Charts with Tableau Public |
|
|
147 | (5) |
|
|
|
152 | (5) |
|
|
|
157 | (58) |
|
|
|
160 | (7) |
|
Design Choropleth Colors and Intervals |
|
|
167 | (9) |
|
Normalize Choropleth Map Data |
|
|
176 | (1) |
|
Point Map with Google My Maps |
|
|
177 | (8) |
|
Symbol Point Map with Datawrapper |
|
|
185 | (6) |
|
Choropleth Map with Datawrapper |
|
|
191 | (9) |
|
Choropleth Map with Tableau Public |
|
|
200 | (7) |
|
Current Map with Socrata Open Data |
|
|
207 | (8) |
|
|
|
215 | (12) |
|
|
|
216 | (2) |
|
Datawrapper Table with Sparklines |
|
|
218 | (7) |
|
|
|
225 | (2) |
|
|
|
227 | (18) |
|
Static Image Versus Interactive iframe |
|
|
228 | (3) |
|
Get the Embed Code or iframe Tag |
|
|
231 | (7) |
|
Paste Code or iframe to a Website |
|
|
238 | (7) |
|
Part III Code Templates and Advanced Tools |
|
|
|
10 Edit and Host Code with GitHub |
|
|
245 | (30) |
|
Copy, Edit, and Host a Simple Leaflet Map Template |
|
|
247 | (8) |
|
Convert GitHub Pages Link to iframe |
|
|
255 | (1) |
|
Create a New Repo and Upload Files on GitHub |
|
|
256 | (5) |
|
GitHub Desktop and Atom Text Editor to Code Efficiently |
|
|
261 | (14) |
|
11 Chart.js and Highcharts Templates |
|
|
275 | (16) |
|
Bar or Column Chart with Chart.js |
|
|
277 | (3) |
|
|
|
280 | (1) |
|
|
|
281 | (2) |
|
Annotated Line Chart with Highcharts |
|
|
283 | (2) |
|
Scatter Chart with Chart.js |
|
|
285 | (2) |
|
Bubble Chart with Chart.js |
|
|
287 | (4) |
|
|
|
291 | (44) |
|
Leaflet Maps with Google Sheets |
|
|
294 | (14) |
|
Leaflet Storymaps with Google Sheets |
|
|
308 | (13) |
|
Get Your Google Sheets API Key |
|
|
321 | (5) |
|
Leaflet Maps with CSV Data |
|
|
326 | (1) |
|
Leaflet Heatmap Points with CSV Data |
|
|
327 | (2) |
|
Leaflet Searchable Point Map |
|
|
329 | (2) |
|
Leaflet Maps with Open Data APIs |
|
|
331 | (4) |
|
13 Transform Your Map Data |
|
|
335 | (34) |
|
Geospatial Data and GeoJSON |
|
|
336 | (4) |
|
Find GeoJSON Boundary Files |
|
|
340 | (1) |
|
Draw and Edit with Geojson.io |
|
|
341 | (5) |
|
Edit and Join with Mapshaper |
|
|
346 | (12) |
|
Convert Compressed KMZ to KML |
|
|
358 | (2) |
|
Georeference with Map Warper |
|
|
360 | (1) |
|
Bulk Geocode with US Census |
|
|
361 | (2) |
|
Pivot Points into Polygon Data |
|
|
363 | (6) |
|
Part IV Telling True, Meaningful Stories |
|
|
|
14 Detect Lies and Reduce Bias |
|
|
369 | (28) |
|
|
|
371 | (11) |
|
|
|
382 | (6) |
|
Recognize and Reduce Data Bias |
|
|
388 | (4) |
|
Recognize and Reduce Spatial Bias |
|
|
392 | (5) |
|
15 Tell and Show Your Data Story |
|
|
397 | (12) |
|
Build a Narrative on a Storyboard |
|
|
398 | (4) |
|
Draw Attention to Meaning |
|
|
402 | (3) |
|
Acknowledge Sources and Uncertainty |
|
|
405 | (1) |
|
Decide on Your Data Story Format |
|
|
406 | (3) |
| Appendix. Fix Common Problems |
|
409 | (12) |
| Index |
|
421 | |