2016-11-24 20 views
0

Я довольно новичок в R и смог использовать ggplot2 с помощью Google. ;) Я хотел, чтобы «стековый график» относился к количеству единиц времени (1-8).Как группировать (m/f) в уже уложенном баре (изобилие против временных рядов)?

Что сюжет выглядит сейчас:

enter image description here

Теперь к моей цели и задачи: У меня есть данные для мужчин и женщин. Моя цель - группировать m/f для каждого временного блока рядом друг с другом. так 2 сложенных barplots (м и е) для каждого временного ряда 1 - 8, рядом друг с другом (к сожалению, не могу добавить второй снимок)

загрузки ссылки на данные (текстовый файл): https://www.wetransfer.com/downloads/559769b71aa32356457293161f5448f220161124101155/eb3b1f6c78d3145a1ad68d31a07e0c5c20161124101155/173f77

family_abundance<-read.table("family_abundance.txt", header=T) 
ggplot(family_abundance, aes(x=row, y=value, fill=factor(variable))) 
     + geom_bar(stat="identity",) 
     + scale_fill_manual(values=c("#523A00","#143952","#0B1E0B","#112D10","#163C16","#1C4B1B","#215A20","#2D782B","#389636","#7071b6","#390528","#4B0636","#5E0843","#710950","#970C6B","#BD0F86","#BD0F86","#E212A1","#F042B9","#5CC45A","#f7d899","#A26F3F","#C6986C","#32dcd0","#7071b6","#35bfd7","#faa756","#D4D125","#048c92","#bc94e3","#22776e","#f294d1","#c64b3f","#fac049","#491209","#A42913","#E54124","#7f8ba7","#2972A3","#EBFEF4","#c9aba5","#1f7366","#7A5800","#8F6600","#B88400","#D89A00","#FFBA0A","#A1C8E3","#B1ADA0","#996836","#58a56d","#f5a05f")) 
     + xlab("Week") 
     + ylab("Abundance") 
     + facet_grid(. ~sex) 

Теперь я знаю, что есть postion = dodge, и я попробовал. однако он разбивает все штабелированные стержни на отдельные. Моя идея - как-то сказать, увернуться только сделать это для секса (м/ж)? Но я не знаю, как это сделать.

Может ли кто-нибудь мне помочь?

Приветствия Сио

ответ

2

С вашими данными, которые должны быть что-то нравится (довольно му сп ту же идею, лесоруб-х):

ggplot(family_abundance, aes(x=interaction(sex,row), y=value, group=sex,fill=factor(variable))) + 
    geom_bar(stat="identity")+ 
    facet_grid(.~row, scales = 'free')+ 
    scale_x_discrete("Week",labels=levels(family_abundance$sex)) 
+0

Спасибо большое! Это в значительной степени то, что я хотел! Очевидно, мне все же нужно сделать еще немного чтения в facet_grid и aes ggplot. Приветствия! – sio

0
ggplot(mpg, aes(interaction(year, class))) + 
    geom_bar(aes(fill = drv), position = "stack") 

enter image description here

ggplot(mpg, aes(as.factor(year))) + 
    geom_bar(aes(fill = drv), position = "stack") + 
    facet_grid(~class, scales = 'free') 

enter image description here

(я не склонен загружать данные.)

+0

привет лесоруб приветствий для Вашего быстрого ответа. Кажется, я видел аналогичный пример в Интернете. Тем не менее, это не очень помогает мне, так как мой dataframe совсем другой. здесь другая ссылка на информационный кадр: https://files.fm/u/m44reccn – sio

+0

Затем, пожалуйста, укажите минимальный воспроизводимый пример. Пожалуйста, прочитайте информацию о [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и как дать [воспроизводимый пример] (http://stackoverflow.com/questions/ 5963269). Это облегчит вам помощь другим людям. – Axeman

+0

DataFrame, который я добавил в своем комментарии выше, является фактическим набором данных. Однако он уже довольно маленький и интуитивно понятный! – sio