Skip to main content

Diverging bar charts for survey data

Application exercise
Modified

October 14, 2026

Note

This application exercise is completed in class and submitted via a worksheet.

We have seen four primary methods for constructing diverging bar charts for survey data.

  1. Stacked bar charts: all responses are plotted in a single bar, with negative responses on the left and positive responses on the right. Neutral responses are included in the middle of the bar.
  2. Diverging, with extra neutrals: negative and positive responses are plotted in separate bars on either side of the origin, with neutral responses in a distinct, separate subplot.
  3. Diverging, integrated neutrals: negative and positive responses are plotted in separate bars on either side of the origin, but neutral responses are centered around the origin.
  4. Split bars: each response category is plotted in a separate facet, with negative responses on the left and positive responses on the right. Neutral responses are plotted in their own facet in the middle.
(a) Stacked bar charts
(b) Diverging, with extra neutrals
(c) Diverging, integrated neutrals
(d) Split bars
Figure 1: An example of each of the four methods for plotting diverging bar charts for survey data.

Your turn: Evaluate each of the four methods for plotting diverging bar charts, specifically identifying how it enables (or does not) specific tasks.

  Stacked bar charts Diverging, with extra neutrals Diverging, integrated neutrals Split bars How important do we think it is?
Read percentage of values of     and    
Read percentage of values of    
Read percentage of values of    
Read percentage of values of    
Read percentage of values of    
Read percentage of values of    
Read percentage of values of     and    

Acknowledgments

─ Session info ───────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.6.1 (2026-06-24)
 os       macOS Golden Gate 27.0.1
 system   aarch64, darwin23
 ui       X11
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       America/New_York
 date     2026-10-14
 pandoc   3.10 @ /Applications/Positron.app/Contents/Resources/app/quarto/bin/tools/aarch64/ (via rmarkdown)
 quarto   1.11.5 @ /Applications/quarto/bin/quarto

─ Packages ───────────────────────────────────────────────────────────────────
 ! package      * version date (UTC) lib source
 P bit            4.6.0   2025-03-06 [?] RSPM
 P bit64          4.8.2   2026-05-19 [?] RSPM
 P brand.yml      0.1.0   2025-11-06 [?] RSPM
 P cli            3.6.6   2026-04-09 [?] RSPM
 P colorspace   * 2.1-3   2026-07-12 [?] RSPM
 P crayon         1.5.3   2024-06-20 [?] RSPM
 P digest         0.6.39  2025-11-19 [?] RSPM
 P dplyr        * 1.2.1   2026-04-03 [?] RSPM
 P evaluate       1.0.5   2025-08-27 [?] RSPM
 P farver         2.1.2   2024-05-13 [?] RSPM
 P fastmap        1.2.0   2024-05-15 [?] RSPM
 P forcats      * 1.0.1   2025-09-25 [?] RSPM
 P generics       0.1.4   2025-05-09 [?] RSPM
 P ggplot2      * 4.0.3   2026-04-22 [?] RSPM
 P glue           1.8.1   2026-04-17 [?] RSPM
 P gtable         0.3.6   2024-10-25 [?] RSPM
 P here         * 1.0.2   2025-09-15 [?] RSPM
 P hms            1.1.4   2025-10-17 [?] RSPM
 P htmltools      0.5.9   2025-12-04 [?] RSPM
 P htmlwidgets    1.6.4   2023-12-06 [?] RSPM
 P jsonlite       2.0.0   2025-03-27 [?] RSPM
 P knitr          1.51    2025-12-20 [?] RSPM
 P labeling       0.4.3   2023-08-29 [?] RSPM
 P lifecycle      1.0.5   2026-01-08 [?] RSPM
 P lubridate    * 1.9.5   2026-02-04 [?] RSPM
 P magrittr       2.0.5   2026-04-04 [?] RSPM
 P otel           0.2.0   2025-08-29 [?] RSPM
 P patchwork    * 1.3.2   2025-08-25 [?] RSPM
 P pillar         1.11.1  2025-09-17 [?] RSPM
 P pkgconfig      2.0.3   2019-09-22 [?] RSPM
 P png            0.1-9   2026-03-15 [?] RSPM
 P prismatic      1.1.2   2024-04-10 [?] RSPM
 P purrr        * 1.2.2   2026-04-10 [?] RSPM
 P R6             2.6.1   2025-02-15 [?] RSPM
 P RColorBrewer   1.1-3   2022-04-03 [?] RSPM
 P readr        * 2.2.0   2026-02-19 [?] RSPM
 P renv           1.3.1   2026-10-06 [?] RSPM
 P rJava          1.0-18  2026-04-08 [?] RSPM
 P rlang          1.3.0   2026-07-05 [?] RSPM
 P rmarkdown      2.31    2026-03-26 [?] RSPM
 P rprojroot      2.1.1   2025-08-26 [?] RSPM
 P S7             0.2.2   2026-04-22 [?] RSPM
 P scales       * 1.4.0   2025-04-24 [?] RSPM
 P sessioninfo    1.2.4   2026-06-04 [?] RSPM
 P stringi        1.8.9   2026-08-04 [?] RSPM
 P stringr      * 1.6.0   2025-11-04 [?] RSPM
 P tabulapdf    * 1.0.5-5 2024-11-15 [?] RSPM
 P tibble       * 3.3.1   2026-01-11 [?] RSPM
 P tidyr        * 1.3.2   2025-12-19 [?] RSPM
 P tidyselect     1.2.1   2024-03-11 [?] RSPM
 P tidyverse    * 2.0.0   2023-02-22 [?] RSPM
 P timechange     0.4.0   2026-01-29 [?] RSPM
 P tzdb           0.5.0   2025-03-15 [?] RSPM
 P vctrs          0.7.3   2026-04-11 [?] RSPM
 P vroom          1.7.1   2026-03-31 [?] RSPM
 P withr          3.0.3   2026-06-19 [?] RSPM
 P xfun           0.60    2026-07-09 [?] RSPM
 P yaml           2.3.12  2025-12-10 [?] RSPM

 [1] /Users/bcs88/Projects/info-3312/course-site/renv/library/macos/R-4.6/aarch64-apple-darwin23
 [2] /Users/bcs88/Library/Caches/org.R-project.R/R/renv/sandbox/macos/R-4.6/aarch64-apple-darwin23/46003b10

 * ── Packages attached to the search path.
 P ── Loaded and on-disk path mismatch.

──────────────────────────────────────────────────────────────────────────────