Skip to content

Instantly share code, notes, and snippets.

@adolfont
Last active July 8, 2019 19:22
Show Gist options
  • Save adolfont/fef7e02c9331ebd405fece1dc9d11d36 to your computer and use it in GitHub Desktop.
Save adolfont/fef7e02c9331ebd405fece1dc9d11d36 to your computer and use it in GitHub Desktop.
Generator of Likert-scale plots for Elixir Forum survey data
Input =("
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16 Q17 Q18
4 4 4 4 4 4 3 3 4 3 4 4 4 2 3 3 3 2
5 3 4 4 5 4 4 2 3 3 4 3 4 4 4 5 2 5
4 5 5 5 5 4 5 3 3 3 3 3 4 1 3 3 1 3
4 5 5 5 5 5 5 3 4 4 5 3 4 3 5 4 4 4
5 5 5 5 5 3 4 3 3 3 3 3 3 1 5 5 4 5
3 5 4 4 4 3 3 3 3 4 5 3 3 4 2 2 2 2
4 5 5 4 5 2 1 3 1 1 1 1 1 1 5 5 1 4
4 4 4 4 4 4 3 3 3 3 3 3 3 3 4 4 2 5
4 5 5 5 5 3 5 3 3 3 3 3 4 1 4 4 2 5
3 5 4 4 5 2 5 1 2 3 3 1 3 2 1 3 3 3
5 5 5 5 5 1 5 1 2 1 5 1 2 3 4 4 3 4
1 4 4 5 5 3 3 1 2 3 3 2 3 1 4 4 1 3
5 4 4 5 5 3 4 2 3 4 4 4 4 4 4 4 3 3
5 5 5 5 5 5 5 3 3 3 5 4 5 1 2 2 2 5
3 5 5 5 5 3 5 3 5 4 4 3 4 2 5 4 2 4
4 4 4 4 3 3 4 3 3 3 3 3 3 5 4 4 3 3
3 3 3 4 5 4 4 2 4 3 4 4 4 2 4 4 2 4
5 5 5 5 5 3 5 3 3 3 2 3 3 1 3 3 2 5
3 3 3 3 3 4 4 3 3 3 3 3 3 3 4 4 4 5
5 5 5 5 5 4 5 2 3 4 4 3 4 1 4 5 4 4
4 4 5 5 3 4 5 3 4 4 4 3 4 3 3 4 2 3
4 5 5 5 4 5 5 2 4 4 5 1 4 1 4 5 3 4
5 5 5 5 5 5 5 5 5 5 5 5 5 1 4 5 1 5
4 4 3 4 5 5 5 4 4 4 4 5 5 5 2 3 5 4
4 5 5 5 5 4 5 4 4 4 4 4 4 3 4 4 2 5
3 1 2 3 3 3 2 4 2 1 3 3 1 1 5 3 1 3
3 5 4 4 4 1 4 3 3 3 3 3 3 4 2 2 4 2
4 4 4 3 4 2 3 3 2 2 2 1 2 4 2 3 3 4
4 4 3 3 4 2 3 2 2 3 3 4 3 2 4 4 2 4
5 5 4 5 4 5 5 1 4 5 5 4 5 2 3 4 4 3
4 5 5 5 5 4 5 3 4 4 5 3 4 4 5 5 1 5
4 4 4 5 5 4 3 1 3 3 3 2 5 2 2 5 3 4
5 5 4 5 5 4 4 2 3 3 4 2 3 1 5 5 2 4
5 4 5 4 5 3 4 2 2 2 2 4 4 2 4 5 2 5
5 5 5 5 5 5 5 4 5 4 5 3 5 2 4 5 2 5
4 4 4 5 4 3 3 3 3 3 3 3 3 2 3 4 3 3
2 4 4 5 5 1 5 1 1 1 1 2 1 1 5 5 2 5
3 5 5 5 5 3 5 3 3 3 3 3 3 1 3 4 1 5
5 5 5 5 5 3 5 5 3 3 3 3 3 2 5 5 2 4
3 3 4 4 4 5 4 2 5 5 5 4 5 3 4 4 3 4
2 2 4 5 5 3 5 2 4 2 4 5 3 4 5 3 2 5
4 4 4 4 4 3 3 2 2 3 3 4 5 1 5 5 2 4
4 5 5 4 5 3 5 2 4 4 3 3 3 1 4 4 1 1
4 4 4 5 4 4 5 3 4 5 5 5 5 3 4 4 3 4
4 4 4 4 4 4 4 2 2 2 3 2 3 3 4 5 1 4
5 5 5 5 5 3 3 3 3 3 5 3 3 1 4 4 2 5
3 3 3 3 5 4 3 2 1 2 2 3 3 1 4 4 2 2
5 5 5 5 5 1 1 1 1 1 1 1 1 1 4 3 4 5
5 5 5 5 5 3 5 3 3 3 3 3 3 2 4 4 2 5
4 3 3 4 3 1 4 1 1 1 1 2 1 1 5 4 2 4
5 5 5 5 5 5 5 5 5 5 5 5 5 1 5 5 1 3
4 5 5 5 5 3 4 2 4 3 4 2 4 4 2 5 1 5
4 4 4 3 4 3 4 3 3 3 3 3 3 1 4 4 3 4
4 4 5 4 4 3 5 3 3 3 4 3 3 3 3 4 3 3
3 3 5 4 4 3 5 1 2 2 2 1 3 1 2 3 4 5
3 3 4 4 5 3 4 2 3 3 3 2 4 3 4 4 3 3
5 3 5 4 5 3 2 2 2 2 4 2 2 2 4 4 2 5
2 4 5 5 4 3 2 1 2 2 1 3 3 2 4 5 2 4
3 3 3 4 4 3 4 2 3 3 3 2 2 2 3 4 4 3
4 4 4 4 5 4 3 2 3 3 3 3 4 2 4 4 2 5
5 5 5 5 5 5 5 5 5 5 5 4 5 3 5 4 3 5
3 4 4 3 4 3 4 3 3 3 3 3 3 2 4 4 2 3
3 3 3 4 4 4 3 2 3 4 4 3 4 4 4 3 3 4
1 3 3 3 4 4 3 2 3 2 4 3 4 4 3 3 4 4
3 3 4 4 5 1 3 2 2 2 2 1 3 1 4 4 1 4
4 5 4 5 5 3 4 3 4 3 3 3 4 4 3 4 3 4
5 3 3 5 5 3 3 1 1 1 1 4 3 5 5 4 3 5
3 2 2 3 4 3 4 3 3 4 3 3 5 3 2 3 4 1
4 4 4 4 5 3 4 3 3 3 3 3 3 4 4 4 4 4
5 5 5 4 5 3 4 3 2 3 3 2 3 3 3 3 2 4
1 2 2 5 3 4 2 2 2 2 4 1 1 3 3 4 1 4
2 2 3 4 4 3 5 3 2 3 4 4 3 1 2 3 3 4
2 3 4 4 4 3 3 2 2 2 2 2 2 2 4 4 2 4
3 5 5 5 5 3 5 1 1 1 1 5 1 3 2 2 1 1
3 4 4 5 5 4 4 3 3 4 4 4 4 1 4 4 2 4
4 4 4 4 3 2 2 1 2 2 2 2 3 2 4 4 2 4
5 5 5 5 5 5 5 3 4 4 4 3 3 2 4 4 3 5
3 5 4 5 4 4 3 2 3 3 3 3 4 2 4 4 2 4
4 5 5 5 5 3 4 3 3 3 3 3 4 2 5 5 3 3
4 4 4 5 5 4 4 3 4 4 4 4 4 4 4 4 2 3
3 4 4 3 4 3 4 3 3 3 3 3 3 2 3 4 2 4
5 5 5 5 5 5 5 4 5 5 5 5 5 1 5 5 2 5
3 5 4 5 4 3 4 1 2 3 4 4 4 1 2 3 1 2
3 3 4 4 4 2 4 2 3 2 4 2 3 1 5 4 2 5
5 5 5 4 5 3 3 3 3 3 3 3 3 2 4 5 1 5
4 4 3 4 5 2 2 1 2 2 2 2 2 2 4 4 3 3
5 5 5 5 5 4 4 4 4 4 4 3 4 3 4 4 3 4
4 4 4 4 4 4 4 4 4 4 4 4 4 2 4 4 2 4
3 4 4 5 5 2 4 1 4 3 3 1 3 1 3 3 2 3
4 4 5 5 5 2 3 1 3 2 1 3 4 5 3 4 4 4
3 3 3 2 2 2 3 2 2 2 2 2 2 3 3 3 2 2
3 4 3 4 4 4 4 2 3 3 3 2 2 4 4 4 3 4
4 3 3 4 5 4 5 1 2 5 5 1 1 1 5 5 1 3
4 4 5 4 4 2 2 2 3 2 2 1 2 3 3 3 3 3
5 5 5 5 5 4 5 3 5 3 5 4 3 1 5 4 2 3
3 2 3 4 4 3 3 1 3 3 3 3 3 4 3 3 2 4
3 2 4 4 4 1 4 1 5 1 5 1 3 4 2 3 4 3
3 5 5 5 5 4 5 3 4 4 4 5 5 3 4 4 3 4
1 1 5 5 5 1 1 1 1 1 1 1 1 5 1 1 5 1
5 5 5 5 5 5 5 2 3 4 4 5 5 4 4 4 4 5
4 4 4 3 5 4 4 3 3 3 4 2 3 3 4 4 2 3
2 4 4 5 3 2 3 1 4 1 1 3 2 2 3 4 2 4
4 4 4 5 5 5 2 1 5 2 5 1 4 2 2 4 2 4
5 5 5 5 5 3 3 3 5 3 5 3 5 1 5 5 1 1
3 3 2 4 4 2 2 3 2 2 4 2 3 3 5 4 2 5
3 4 5 5 5 3 4 2 3 3 3 3 3 3 4 4 2 2
4 4 3 4 4 3 4 2 3 3 3 3 3 3 3 3 3 3
4 5 4 5 5 4 3 2 3 3 4 3 3 2 2 2 4 2
3 4 4 3 3 2 3 1 1 1 3 1 2 1 4 4 2 4
4 4 4 4 4 5 3 1 4 3 4 3 4 3 2 2 2 4
5 5 5 5 5 4 4 5 4 5 4 3 2 1 5 5 2 5
2 3 3 3 4 2 3 1 4 2 4 2 2 2 2 3 4 3
3 1 2 4 1 5 5 1 4 3 2 3 2 4 2 5 2 5
5 5 5 5 5 5 4 3 3 3 3 4 4 1 4 5 1 1
4 4 4 3 4 3 3 2 3 2 3 3 3 2 3 3 3 4
5 5 4 5 4 3 4 2 3 3 3 4 3 2 4 3 3 3
4 4 4 4 5 5 5 5 5 5 3 3 5 2 4 5 3 5
3 5 4 5 4 3 4 3 3 3 5 4 4 3 5 5 1 4
5 5 5 5 5 3 3 2 2 3 4 2 3 3 4 4 3 4
4 5 5 5 5 5 5 5 5 5 5 5 5 3 4 4 2 4
3 4 4 4 5 2 3 1 2 1 1 1 3 2 4 4 2 5
2 2 2 4 3 2 2 1 3 3 2 3 3 3 3 2 2 4
4 4 3 3 4 3 4 3 3 3 3 3 3 2 4 5 1 5
3 3 3 3 3 3 4 3 3 3 3 3 3 3 4 4 3 4
4 5 5 5 4 4 3 3 4 4 5 4 4 1 5 4 1 5
4 3 3 3 5 3 4 3 3 3 3 3 3 4 2 3 3 3
3 4 4 5 5 5 5 3 4 3 4 4 4 2 5 5 3 2
5 5 5 5 4 4 5 2 3 3 3 2 3 2 4 4 2 4
5 5 3 4 5 3 3 3 3 4 3 4 4 2 3 5 1 5
4 4 4 4 4 3 4 2 3 3 3 4 4 3 4 5 4 3
4 3 4 4 4 4 4 2 4 4 4 3 3 3 3 3 3 4
2 3 2 2 4 4 3 1 2 2 3 2 2 4 3 4 3 3
5 5 4 4 5 5 5 3 3 4 3 4 4 4 4 4 3 5
5 4 4 4 4 4 5 2 4 3 3 5 4 3 3 4 2 3
")
Data = read.table(textConnection(Input),header=TRUE)
### Change Likert scores to factor and specify levels
Data$Q1= factor(Data$Q1,
levels = c("1", "2", "3", "4", "5"),
labels = c('Strongly Disagree', 'Disagree', 'Neither', 'Agree', 'Strongly Agree'),
ordered = TRUE)
Data$Q2 = factor(Data$Q2,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q3 = factor(Data$Q3,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q4= factor(Data$Q4,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q5= factor(Data$Q5,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q6= factor(Data$Q6,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q7= factor(Data$Q7,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q8= factor(Data$Q8,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q9= factor(Data$Q9,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q10= factor(Data$Q10,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q11= factor(Data$Q11,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q12= factor(Data$Q12,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q13= factor(Data$Q13,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q14= factor(Data$Q14,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q15= factor(Data$Q15,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q16= factor(Data$Q16,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q17= factor(Data$Q17,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
Data$Q18= factor(Data$Q18,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
library(likert)
Q1Name <- "Up to date Q1"
Q2Name <- "Stay aware Q2"
Q3Name <- "Extend knowledge Q3"
Q4Name <- "Better Elixir dev Q4"
Q5Name <- "Serendipitous learning Q5"
Q6Name <- "Promote projects Q6"
Q7Name <- "Discover developers Q7"
Q8Name <- "Business networking Q8"
Q9Name <- "Receive validation Q9"
Q10Name <- "Build community for projects Q10"
Q11Name <- "Feedback for projects Q11"
Q12Name <- "Manage own image Q12"
Q13Name <- "Build trust or rapport Q13"
Q14Name <- "Hard to cope amount info Q14"
Q15Name <- "Easy to browse topics Q15"
Q16Name <- "Threads and replies well organized Q16"
Q17Name <- "Discussions long and hard to keep up Q17"
Q18Name <- "Fins for short discussions Q18"
names(Data) <- c(Q1Name,Q2Name,Q3Name,Q4Name,Q5Name,Q6Name,Q7Name,Q8Name,Q9Name,Q10Name,Q11Name,Q12Name,Q13Name,Q14Name,Q15Name,Q16Name,
Q17Name,Q18Name)
likert(Data)
Result = likert(Data)
# CENTER WITH PERCENTS NO LEGEND RIGHT
plot(Result, low.color = "dark red", high.color = "dark green",
panel.strip.color = "white",
panel.background = element_rect(size = 1, color = "black", fill = "grey85"),
group.order = c(Q1Name,Q2Name,Q3Name,Q4Name,Q5Name,Q6Name,Q7Name,Q8Name,Q9Name,Q10Name,Q11Name,Q12Name,Q13Name,Q14Name,Q15Name,Q16Name,
Q17Name,Q18Name)) + ggtitle("Elixir Forum Survey")+ theme(axis.text.y = element_text(colour="black", size="10", hjust=0)) + theme(axis.text.x = element_text(colour="black", size="10"))
# CENTER WITH PERCENTS NO LEGEND RIGHT - ORDERED BY AGREEMENT
plot(Result, low.color = "dark red", high.color = "dark green",
panel.strip.color = "white",
panel.background = element_rect(size = 1, color = "black", fill = "grey85")) + ggtitle("Elixir Forum Survey")+ theme(axis.text.y = element_text(colour="black", size="10", hjust=0)) + theme(axis.text.x = element_text(colour="black", size="10"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment