Graph Challenge 9

Author

Patrick Smith

Published

April 28, 2025

The {plotly} package lets you turn your ggplot figures into interactive ones. You can learn more about it here: https://plotly.com/ggplot2/

For this graph challenge, I want you to create an interactive plot with the April 2025 DU survey data using ggplot and plotly. The type of plot is up to you. So is the variable or variables you’d like to show.

When you’re done, rather than hitting the “render” button, hit the “publish” button to publish your submission to RPubs. Then, submit the link to your publication on Canvas.

library(googlesheets4)
library(dplyr)
library(tidyr)
library(plotly)

gs4_deauth()

url <- "https://docs.google.com/spreadsheets/d/1npon5F_Gr40HQj8KVeHq_un7SOep4dzc6kjP0px7nLo/edit?usp=sharing"

dt <- range_speedread(url)

print(colnames(dt))
  [1] "StartDate"                "EndDate"                 
  [3] "Status"                   "Progress"                
  [5] "Duration (in seconds)"    "Finished"                
  [7] "RecordedDate"             "ResponseId"              
  [9] "Q1"                       "Q2"                      
 [11] "Q3"                       "Q4"                      
 [13] "Q5_1"                     "Q5_2"                    
 [15] "Q5_3"                     "Q6_1"                    
 [17] "Q6_2"                     "Q6_3"                    
 [19] "Q6_4"                     "Q6_5"                    
 [21] "Q7_1"                     "Q7_6"                    
 [23] "Q7_38"                    "Q7_36"                   
 [25] "Q7_7"                     "Q7_19"                   
 [27] "Q7_20"                    "Q7_33"                   
 [29] "Q7_22"                    "Q7_32"                   
 [31] "Q7_31"                    "Q7_8"                    
 [33] "Q7_39"                    "Q7_15"                   
 [35] "Q7_27"                    "Q7_16"                   
 [37] "Q7_DO_1"                  "Q7_DO_6"                 
 [39] "Q7_DO_38"                 "Q7_DO_36"                
 [41] "Q7_DO_7"                  "Q7_DO_19"                
 [43] "Q7_DO_20"                 "Q7_DO_33"                
 [45] "Q7_DO_22"                 "Q7_DO_32"                
 [47] "Q7_DO_31"                 "Q7_DO_8"                 
 [49] "Q7_DO_39"                 "Q7_DO_15"                
 [51] "Q7_DO_27"                 "Q7_DO_16"                
 [53] "Q8"                       "Q9_1"                    
 [55] "Q9_2"                     "Q9_3"                    
 [57] "Q9_4"                     "Q9_5"                    
 [59] "Q9_6"                     "Q9_7"                    
 [61] "Q9_8"                     "Q9_9"                    
 [63] "Q9_10"                    "Q9_11"                   
 [65] "Q9_12"                    "Q10"                     
 [67] "Q11_1"                    "Q11_2"                   
 [69] "Q11_3"                    "Q11_4"                   
 [71] "Q11_5"                    "Q12_1"                   
 [73] "Q12_2"                    "Q12_3"                   
 [75] "Q12_4"                    "Q13_1"                   
 [77] "Q13_2"                    "Q13_3"                   
 [79] "Q13_4"                    "Q13_5"                   
 [81] "Q13_DO_1"                 "Q13_DO_2"                
 [83] "Q13_DO_3"                 "Q13_DO_4"                
 [85] "Q13_DO_5"                 "Q14_1"                   
 [87] "Q14_2"                    "Q14_3"                   
 [89] "Q14_4"                    "Q15_1"                   
 [91] "Q15_2"                    "Q15_3"                   
 [93] "Q15_4"                    "Q16_1"                   
 [95] "Q16_2"                    "Q16_3"                   
 [97] "Q16_4"                    "Q16_5"                   
 [99] "Q16_6"                    "Q16_7"                   
[101] "Q16_8"                    "Q17_1"                   
[103] "Q17_2"                    "Q17_3"                   
[105] "Q17_4"                    "Q17_5"                   
[107] "Q17_6"                    "Q17_7"                   
[109] "Q17_8"                    "Q18_1"                   
[111] "Q19"                      "Q20_1"                   
[113] "Q20_2"                    "Q20_3"                   
[115] "Q20_4"                    "Q20_5"                   
[117] "Q20_6"                    "Q21_1"                   
[119] "Q21_2"                    "Q22_1"                   
[121] "Q23"                      "Q24_1"                   
[123] "Q24_2"                    "Q24_3"                   
[125] "Q24_4"                    "Q24_5"                   
[127] "Q24_6"                    "Q24_7"                   
[129] "Q24_6_TEXT"               "Q25_1"                   
[131] "Q25_2"                    "Q25_3"                   
[133] "Q25_4"                    "Q25_5"                   
[135] "Q25_6"                    "Q26_1"                   
[137] "Q26_2"                    "Q26_3"                   
[139] "Q26_4"                    "Q26_5"                   
[141] "Q26_DO_1"                 "Q26_DO_2"                
[143] "Q26_DO_3"                 "Q26_DO_4"                
[145] "Q26_DO_5"                 "Q27"                     
[147] "Q28"                      "Q29_1"                   
[149] "Q29_2"                    "Q29_3"                   
[151] "Q29_4"                    "Q29_5"                   
[153] "Q29_6"                    "Q29_7"                   
[155] "Q29_DO_1"                 "Q29_DO_2"                
[157] "Q29_DO_3"                 "Q29_DO_4"                
[159] "Q29_DO_5"                 "Q29_DO_6"                
[161] "Q29_DO_7"                 "Q30_1"                   
[163] "Q30_2"                    "Q30_3"                   
[165] "Q31_1"                    "Q32_1"                   
[167] "Q32_2"                    "Q32_3"                   
[169] "Q32_4"                    "Q32_5"                   
[171] "Q32_6"                    "Q32_7"                   
[173] "Q32_8"                    "Q32_9"                   
[175] "Q32_10"                   "Q32_11"                  
[177] "Q32_12"                   "Q32_13"                  
[179] "Q32_13_TEXT"              "Q32_DO_1"                
[181] "Q32_DO_2"                 "Q32_DO_3"                
[183] "Q32_DO_4"                 "Q32_DO_5"                
[185] "Q32_DO_6"                 "Q32_DO_7"                
[187] "Q32_DO_8"                 "Q32_DO_9"                
[189] "Q32_DO_10"                "Q32_DO_11"               
[191] "Q32_DO_12"                "Q32_DO_13"               
[193] "Q33_1"                    "Q33_2"                   
[195] "Q33_3"                    "Q33_DO_1"                
[197] "Q33_DO_2"                 "Q33_DO_3"                
[199] "Q34"                      "Q35"                     
[201] "Q36_1"                    "Q36_2"                   
[203] "Q36_3"                    "Q36_4"                   
[205] "Q36_5"                    "Q36_6"                   
[207] "Q36_7"                    "Q36_8"                   
[209] "Q36_9"                    "Q36_10"                  
[211] "Q36_11"                   "Q37"                     
[213] "Q38_1"                    "Q39_1"                   
[215] "Q39_2"                    "Q39_3"                   
[217] "Q39_4"                    "Q39_5"                   
[219] "Q40_1"                    "Q41_1"                   
[221] "Q42_1"                    "Q43_1"                   
[223] "Q43_2"                    "Q43_3"                   
[225] "Q45"                      "Q46_1"                   
[227] "Q46_2"                    "Q46_3"                   
[229] "Q46_4"                    "Q47"                     
[231] "Q47_6_TEXT"               "Q48_1"                   
[233] "Q48_4"                    "Q49_1"                   
[235] "Q49_2"                    "Q49_3"                   
[237] "Q49_4"                    "Q49_5"                   
[239] "Q50"                      "Q51"                     
[241] "Q52"                      "Q52_14_TEXT"             
[243] "Q53_1"                    "Q53_2"                   
[245] "Q53_3"                    "Q53_4"                   
[247] "Q54"                      "Q55_1"                   
[249] "Q55_2"                    "Q55_3"                   
[251] "Q55_4"                    "Q55_5"                   
[253] "Q55_6"                    "Q55_7"                   
[255] "Q55_8"                    "Q55_8_TEXT"              
[257] "Q55_DO_1"                 "Q55_DO_2"                
[259] "Q55_DO_3"                 "Q55_DO_4"                
[261] "Q55_DO_5"                 "Q55_DO_6"                
[263] "Q55_DO_7"                 "Q55_DO_8"                
[265] "Q56"                      "Q57"                     
[267] "LonelinessSection_DO_Q26" "LonelinessSection_DO_Q27"
[269] "LonelinessSection_DO_Q31" "LonelinessSection_DO_Q28"
[271] "LonelinessSection_DO_Q29" "LonelinessSection_DO_Q30"
[273] "FPExperiment_DO_Q34"      "FPExperiment_DO_Q35"     
data <- dt %>%
  select(Q27, Q28)

data <- data %>%
  mutate(
    Q27 = factor(Q27, levels = c(1, 2, 3), labels = c("Take advantage", "Depends", "Fair")),
    Q28 = factor(Q28, levels = c(1, 2, 3), labels = c("Lookout for self", "Depends", "Helpful"))
  )

response_counts <- data %>%
  group_by(Q27, Q28) %>%
  summarise(Count = n()) %>%
  ungroup()

p <- response_counts %>%
  plot_ly(
    x = ~Q27,
    y = ~Count,
    color = ~Q28,
    colors = "Set2",
    type = 'bar',
    barmode = 'group',
    text = ~paste0("Q27: ", Q27, "<br>Q28: ", Q28, "<br>Count: ", Count),
    hoverinfo = 'text'
  ) %>%
  layout(
    title = "Respondents' Opinions About People",
    xaxis = list(title = "Q27: Fairness/Trust"),
    yaxis = list(title = "Number of Respondents"),
    barmode = 'group'
  )


p