2014-10-13 1 views
0

gplot2를 사용하여 R에 누적 막대 그래프를 만드는 방법에 대한 질문이 있습니다. 내가 만들고자하는 것은 모든 막대가 다른 막대의 "상단"에 배치되는 누적 막대 그림입니다.ggplot2와 R의 누적 막대 그래프

x = c(100,200,400,600,800,1000,1250,1500) 
y1 = c(1,2,3,4,5,6,7,8) 
y2 = c(8,7,6,5,4,3,2,1) 
data <- data.frame(x,y1,y2) 
ggplot(data, aes(x, y1,label=x)) + 
    geom_bar(stat="identity", fill="blue", position="stack") +  
    geom_bar(stat="identity",aes(x, y2), fill="orange", position="stack") 

지금 나는 스택 막대를 얻습니다. 하지만 x = 100의 경우 0 - 1에서 막대를 하나 얻고 0 - 8에서 1을 얻습니다. 그러나 원하는 것은 0 - 1에서 1을 얻고 1 - 9에서 2를 얻습니다.

아이디어가 있습니까? 수동으로 입력을 요약하지 않고이 문제를 해결할 수 있습니까?

도움 주셔서 감사합니다.

답변

2

시도 :

ggplot(melt(data, id='x')) + geom_bar(aes(x=x, y=value, fill=variable), stat='identity') 

enter image description here

0

방법에 대해 :

df <- data.frame(x = c(x,x), y = c(y1, y2), grp = factor(rep(c("Grp 1", "Grp 2"), each = 8))) 
ggplot(df, aes(x, y, fill = grp)) + geom_bar(stat = "identity", position="stack") 

사용 scale_fill_manual 당신이 색상을 조정할하려는 경우.