我有一个值向量(列均值),它们都属于某个问题。我正在尝试在y轴上绘制值,在x轴上绘制问题名称。我的数据框如下所示:
> colMeansDf
colMeans Question
Q2 3.468240 Q2
Q3 3.677858 Q3
Q4 3.147913 Q4
Q5 3.072595 Q5
Q6 2.382940 Q6
Q7 2.556261 Q7
Q8 2.852087 Q8
Q9 2.663339 Q9
Q10 2.816697 Q10
Q11 4.735027 Q11
Q12 3.820327 Q12
Q13 3.000000 Q13
Q14 3.114338 Q14
Q15 2.806715 Q15
Q16 2.238657 Q16
Q17 3.228675 Q17
Q18 2.023593 Q18
Q19 3.986388 Q19
Q20 2.913793 Q20
Q21 2.611615 Q21
Q22 2.446461 Q22
现在,当我尝试使用ggplot
可视化此数据时,ggplot
似乎由于某种原因改变了数据框的顺序,而不是从Q2开始并在Q22结束,从Q10到Q19,Q2,Q20,Q21,Q22,Q23以及从Q3到Q9的x轴。
到目前为止,我的代码是:
ggplot(colMeansDf, aes(x = Questions, y = colMeans)) +
geom_point(alpha = .6) +
labs(x = "Question", y = "Average Reponse") +
geom_hline(yintercept = mean(colMeansDf$colMeans), color = "red") +
scale_y_continuous(limits = c(1, 7), breaks = 1:7)
谢谢!
答案 0 :(得分:1)
嗨,它以字符串的形式对问题名称进行排序。您可以添加索引(仅包含问题编号),并使用该索引以数字方式重新排列问题名称。
colMeansDf <- colMeansDf %>%
mutate(index = as.numeric(substr(Questions,2,nchar(as.character(Questions)))),
Questions = factor(Questions, levels=((colMeansDf %>% arrange(index))$Questions)))
ggplot(colMeansDf, aes(x = Questions, y = colMeans)) +
geom_point(alpha = .6) +
labs(x = "Question", y = "Average Reponse") +
geom_hline(yintercept = mean(colMeansDf$colMeans), color = "red") +
scale_y_continuous(limits = c(1, 7), breaks = 1:7)