R ggplot、堆叠条形图、x值顺序混淆

R ggplot、堆叠条形图、x值顺序混淆,r,bar-chart,R,Bar Chart,我有一个数据框架(mmt.ranking.sum_2),其中包含25个问题(第一列“问题”) 问题字符串前面依次是9a-h、10a-j、11a-g;i、 e.编号 对于每个问题,在r0-r5(2.-7.列)的课堂上有答案计数 这是熔化的&值被绘制到堆叠条形图中 df.熔化:9h-9a、11g-11a、10j-10a 你知道我为什么和怎样才能保持原来的秩序吗 谢谢你的帮助 谢谢,Georg您应该使用reorder对x轴进行重新排序,例如,替换 aes(questions,..) 借 你没有给出一

我有一个数据框架(mmt.ranking.sum_2),其中包含25个问题(第一列“问题”)

问题字符串前面依次是9a-h、10a-j、11a-g;i、 e.编号

对于每个问题,在r0-r5(2.-7.列)的课堂上有答案计数

这是熔化的&值被绘制到堆叠条形图中

df.熔化:9h-9a、11g-11a、10j-10a

你知道我为什么和怎样才能保持原来的秩序吗

谢谢你的帮助


谢谢,Georg

您应该使用
reorder
对x轴进行重新排序,例如,替换

aes(questions,..)

你没有给出一个可重复的例子,所以我不能从给定的解决方案中确定。这里有一些生成调查问卷数据的代码(我花了30分钟生成数据,不到一分钟就找到了解决方案,所以下次请尝试重现数据)


`

请尽力将您的问题格式化。我试着打扫,但没有成功。我们应该复制并粘贴您的代码以帮助找到解决方案。感谢您为生成测试数据所做的努力。抱歉,但我试图附加原始材料的任何内容都被论坛软件阻止:(;Georg@user2500732欢迎来到SO。你可以阅读这篇关于如何提问的文章。
aes(questions,..)
aes(reorder(questions,as.numeric(gsub('([0-9]+).*','\\1', 
             df.melt$questions)),...)
## 6 questions
N <- 6  
set.seed(123)
let <- sample(1:5,N,rep=TRUE)
qs <- lapply(seq(N),
       function(x){
         nn <- paste0(x,letters[1:20][seq(let[x])])
         somtext <- replicate(3,paste(sample(c(0:9, letters, LETTERS),
                      5, replace=TRUE),
               collapse=""))
         paste(nn,'question text',paste0(somtext,collapse=' '))

       })

questions <- unlist(qs)

dat <- matrix(sample(0:8,length(questions)*6,rep=TRUE),ncol=6)

colnames(dat) <- paste0('r',0:5)
dat <- data.frame(questions,dat)

library(reshape2)
df.melt <- melt(dat, id.vars="questions")
ggplot(df.melt, aes(reorder(questions,as.numeric(gsub('([0-9]+).*','\\1', df.melt$questions)))
                    ,value, fill=variable)) +
  geom_bar(stat='identity')+ 
  theme_bw()+ 
  coord_flip() +
  scale_fill_brewer()