使用 ggplot2 根据填充值重新排序堆叠条形图 x

2024-04-08

进行了包含 5 个问题的调查。这些问题有相同的可能答案。以下是数据,经过重新调整以使用 ggplot2 进行绘图。

library(tidyr)
library(magrittr)

data <- data.frame(ID = c(1:500),
                   q1  = factor(sample(c(1:4), 500, replace = T),
                                labels = c("A", "B", "C", "D")),
                   q2  = factor(sample(c(1:4), 500, replace = T),
                                labels = c("A", "B", "C", "D")),
                   q3  = factor(sample(c(1:4), 500, replace = T),
                                labels = c("A", "B", "C", "D")),
                   q4  = factor(sample(c(1:4), 500, replace = T),
                                labels = c("A", "B", "C", "D")),
                   q5  = factor(sample(c(1:4), 500, replace = T),
                                labels = c("A", "B", "C", "D"))) %>%
gather(question, value, q1:q5)

我想根据给定答案的数量对问题进行排序。所以而不是这个...

library(ggplot2)

ggplot(data, aes(x = question , fill = value)) +
  geom_bar() + 

  theme(panel.background = element_rect(fill = "white")) +
  scale_fill_manual("Value", values = c("#2171B5", "#6BAED6", "#BDD7E7", 
                                   "#EFF3FF"))

...例如,我希望问题沿 x 轴的顺序基于答案 = D 的计数。


知道了。在下面的示例中,按响应数量排序 = A。

  data$question <- reorder(dataf$question, data$value, function(x) max(table(x)[1]))  

   ggplot(heatDf, aes(x = question, fill = value)) +
      geom_bar() + 
      theme(panel.background = element_rect(fill = "white")) +
      scale_fill_manual("", values = c("#2171B5", "#6BAED6", "#BDD7E7", 
                                       "#EFF3FF", "grey30"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ggplot2 根据填充值重新排序堆叠条形图 x 的相关文章

随机推荐