ggplot,堆积条形图,x值顺序混合起来
我有一个数据框(mmt.ranking.sum_2),其中包含25个问题(第1列'问题')的列表。ggplot,堆积条形图,x值顺序混合起来
问题串连续前面有9a-h,10a-j,11a-g;即编号
对于每一个问题有在从R0-R5(2-7。柱)类的答案的计数
questions r0 r1 r2 r3 r4 r5
9a 'question text' 1 1 0 8 3 8
9b 'question text' 1 0 2 7 7 4
...
9h 'question text' 1 6 4 7 3 0
10a 'question text' ...
...
10j 'question text' ...
...
11g 'question text' ...
此熔融&值被绘制成堆积条形图
df.melt < -melt(mmt.ranking.sum_2 [1:7],id.vars = “问题”)
ggplot(df.melt,AES(问题,值,填补=可变) )+ geom_bar()+ coord_flip()+它们e_bw()+ scale_fill_brewer()
在原始数据帧(见上文)在&熔化一个
问题变量值
9a'question文本” R0 1
9b中'question text'r0 1
...
9a'question tex T 'R1 2
...
11g'question文本' R5 2
的问题的顺序是正确的:图9a-H,10A-J,图11A-G
但订单更改&在最终图表中奇怪地反转('coord_flip'导致横条)。
顶部>下:9H-9A,11A 11g-,10J-10A
任何想法,为什么我怎么能保持原有的秩序?
任何帮助表示赞赏
谢谢,乔治
你应该reorder
使用reorder
你的x轴,试试这个,例如,更换
aes(questions,..)
通过
aes(reorder(questions,as.numeric(gsub('([0-9]+).*','\\1',
df.melt$questions)),...)
你不要gi有一个可重现的例子所以我不能确定从给定的解决方案。这里有一些用于生成问卷数据的代码(我花了30分钟来生成数据,不到一分钟就找到了解决方案,因此请下次尝试重新生成数据)。
## 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()
`
谢谢你为生成测试数据所做的努力。道歉,但任何我试图附加的原始材料是由论坛软件:(;乔治 – user2500732
@ user2500732欢迎来到SO。你可以阅读如何问一个[可重现的例子](http://stackoverflow.com/问题/ 5963269 /如何对做 - 一个伟大-R重现-例子)。 – agstudy
请做一些努力来格式化你的问题。我试图清理它,但没有成功。我们应该复制并粘贴您的代码,以帮助找到解决方案。 – agstudy