2013-12-07 2 views
-3

안녕 난이 데이터를 내가 하나의 줄이 100 %를 표시 할 경우 ggplot2를 사용하여 누적 막대 그래프를 플롯 할이에 (백분위 방식)를 막대 그래프를 그릴 필요 ggplot2

ALL Critical Error Warning Review 

2016 1412  475 4  125 
154 45  49 2  58 
116 86  12 1  17 

처럼 설정 "ALL"및 "Critical", "Error", "Warning", "Review"는 "ALL"에 대한 기여도에 따라 나머지는 위에 있어야합니다.

나는 그것을 행운으로 시험해보고있다! .. 손이 필요합니다. 고마워요

답변

1

원하는 플롯에 대한 설명이 모호하지 않은 경우 확실하지 않습니다.

내 해석은 다음과 같습니다

## Copied from user1317221_G - Thanks for that. 
babydf <- structure(list(ALL = c(2016L, 154L, 116L), Critical = c(1412L, 
45L, 86L), Error = c(475L, 49L, 12L), Warning = c(4L, 2L, 1L), 
    Review = c(125L, 58L, 17L)), .Names = c("ALL", "Critical", 
"Error", "Warning", "Review"), class = "data.frame", row.names = c(NA, 
-3L)) 

# Add IDs 
babydf <- cbind(id=1:nrow(babydf), babydf)) 

library(reshape2) 
library(ggplot2) 

# reshape the dataframe: 
df.reshaped <- melt(babydf, id.vars='id') 

ggplot(subset(df.reshaped, variable != 'ALL'), aes(x=id, y=value, fill=variable)) + geom_bar(stat='identity') 

enter image description here

당신이 동일한 높이의 모든 막대가 원하는 경우에, 다만 melt 전에

babydf[, 3:6] <- babydf[, 3:6]/babydf$ALL * 100 

을한다. 결과 : enter image description here

+0

감사합니다. 일부 확장되었습니다. 하지만 나는 카운트가 아닌 y 축의 백분율을 원합니다. 덕분에 –

+0

흠, 내 두 번째 다이어그램에서 정확히 어디에 계산됩니까? 나는 항상 모든 막대가 100 %가되어야한다고 생각했다. – Thilo

+0

죄송합니다. 나는 그 사실을 알지 못했습니다. 정말 고맙습니다. 한 번 더 도움을 주시면 감사하겠습니다. 실제로 실제 데이터 세트는 이와 유사합니다. [https://dl.dropboxusercontent.com/u/93667882/issue_data.csv. 그리고 저는 현명한 BU, 현명한 Wise와 Division Wise에 대한 계획을 세웁니다. ggplot2 필요성에 맞게 데이터를 미리 파악하는 데 문제가 있습니다. 도움을 받으실 수 있습니다. @ Thilo –

관련 문제