2015-11-24 6 views
2

Я пытаюсь нарисовать сгруппированный бар участок со следующими даннымиСгруппированных barplot с R

groups gents ladies 
rd 3.62 2.12 
ab 2.38 1.55 
dh 1.98 1.65 
na 2.71 1.52 
pg 2.25 1.8 
ac 2.37 1.77 
nb 2.28 1.68 
it 2.3  1.46 
ha 3.06 2.05 
th 2.22 1.63 
hy 2.66 1.59 
ad 2.83 1.85 
hy 4.16 2.53 
mj 2.83 1.98 
ng 3.1  2.32 

Вот мой код.

> library(reshape2) 
> library(ggplot2) 
> df.long<-melt(data) 
Using groups as id variables 
> ggplot(df.long,aes(x=groups,y=value,fill=variable))+ labs(x = "groups", y = "connections") + 
+  geom_bar(stat="identity",position="dodge") 

Используя мой код, я получаю X-оси (группы) штрихового участка в алфавитном порядке (AB, AC, объявления, дк) .Я хотел бы, чтобы получить X-ось в порядке мои данные (rd, ab, dh и т. д.) Что я должен сделать для этого?

+0

@Axeman Мой вопрос отличается от того, что мне не нужно заказывать ось x на основе частоты. Мне нужно заказать ось x на основе данных столбца моих групп. – amy

ответ

3

Это поможет решить вашу проблему.

 library(reshape2) 
    library(ggplot2) 
    df.long<-melt(data) 
    df.long$groups <- factor(df.long$groups, levels=unique(df.long$groups)) 
    ggplot(df.long,aes(x=groups,y=value,fill=variable))+ labs(x = "groups", y = "connections") + geom_bar(stat="identity",position="dodge") 
+0

Большое вам спасибо. – amy