2016-11-24 3 views
0

저는 R에 상당히 익숙하며 google을 사용하여 ggplot2를 사용할 수있었습니다. ;) 시간 대 블록 (1 ~ 8)에 대한 상대적 존재 량을 "스택 플롯"하고 싶었습니다.이미 스택 된 모음 (풍족 대 시계열)에서 그룹화 (m/f)하는 방법은 무엇입니까?

는 줄거리는 지금과 같은 것 : 내 목표와 문제에 대한 지금

enter image description here

: 나는 남성과 여성에 대한 데이터를 가지고있다. 내 목표는 각 시간 블록마다 m/f를 그룹화하는 것입니다. 그래서 2 적층 barplots (m 및 F) 각 시계열 1 - 다음 데이터끼리 (불행히도 캔트 제 사진 추가)

다운로드 링크 (TXT 파일) 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가 있고 나는 시도했음을 안다. 그러나 스택 된 모든 막대를 개별 막대로 나눕니다. 내 생각은 어떻게 든 섹스 (m/f)를 위해서만 피할 수 있다고 말하는 것입니까? 그러나 나는 이것을 할 방법이 없다.

아무도 도와 줄 수 있습니까?

건배 그런가

답변

2

like (예쁜 무 빠른 답변

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와 ggplot의 에일들에 대한 더 많은 독서를해야만한다. 건배! – sio

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

enter image description here

enter image description here

(나는 당신의 데이터를 다운로드하는 경향이 아니에요.) 뭔가해야 데이터와

+0

헬로 axeman 환호 : Axeman의 같은 생각을) CH. 나는 비슷한 예를 온라인에서 보았다고 생각한다. 그러나 내 데이터 프레임이 상당히 다르므로 많은 도움이되지 않습니다. 여기 데이터 프레임에 대한 다른 링크 : https://files.fm/u/m44reccn – sio

+0

그런 다음 최소한의 재현 가능한 예제를 포함하십시오. [좋은 질문을하는 법] (http://stackoverflow.com/help/how-to-ask) 및 [재현 가능한 예] (http://stackoverflow.com/questions/)에 대한 정보를 읽어보십시오. 5963269). 이렇게하면 다른 사람들이 당신을 도울 수있게됩니다. – Axeman

+0

위의 내 의견에 추가 한 데이터 프레임은 실제 데이터 집합입니다. 그러나 이미 매우 작고 직관적입니다! – sio