2014-07-06 5 views
0

bugtracking 시스템의 통계를 시각화하려고합니다.ggplot2 스택 막대 그래프

내가하고 싶은 것은 들어오는 버그 티켓과 고정 된 버그 티켓의 개요를 얻는 것이고, 나는 바카르트가 좋은 해결책이 될 것이라고 생각한다.

나는 Hadley Wickham 'ggplot2 데이터 분석을위한 ggplot2 우아한 그래픽'을 구입했고기로와 통계가 어떻게 작동하는지 이해하려고 노력하고 있지만 추가 지원 없이는 지출 할 수있는 것보다 훨씬 더 많은 시간이 필요하다고 생각합니다. 그것을 공부하고.

불행히도 csv를 첨부하면 질문에 불가능한 것 같아서 데이터 표를 기반으로 입/출력 티켓의 개요를 얻을 수 있다면 좋을 것입니다.

id external in.date  fixed in.cw fixed.cw 
1  x 01.11.2013 15.11.2013 1344  1346 
2   07.11.2013    1345  <NA> 
3  x 15.11.2013    1346  <NA> 
4   01.11.2013 15.11.2013 1344  1346 
5  x 07.11.2013 20.11.2014 1345  1447 
6   15.11.2013    1346  <NA> 
7  x 01.11.2013    1344  <NA> 
8   07.11.2013 05.01.2014 1345  1402 
9  x 15.11.2013 05.01.2014 1346  1402 
10   01.11.2013 05.01.2014 1344  1402 
11  x 07.11.2013    1345  <NA> 
12   15.11.2013    1346  <NA> 
13  x 01.11.2013 01.03.2014 1344  1409 
14   07.11.2013 01.04.2014 1345  1414 
15  x 15.11.2013    1346  <NA> 
16   01.11.2013 01.05.2014 1344  1418 

고정 티켓이 플롯에 추가 레이어에 추가되면 좋은 개요를 제공한다고 생각합니다.

투명도 값을 정의하여 오버레이 된 막대 그림을 계속 볼 수 있습니까?

내가 기록한 데이터에는 외부 티켓의 수를 패턴으로 채워 기자 원본과의 관계를 보여주기 위해 시각적으로 다르게 시각화하려는 외부 티켓이 있습니다.

나중에도 티켓의 우선 순위를 포함하고 싶지만 이것은 포 캐스트, 전설 및 어쩌면 다른 것을 추가하는 것 외에 다음 단계 중 하나입니다.

내가 지금까지했던 것입니다 : 당신이 방법 또한 fixed.cw을 containinig 두 번째 레이어를 얻는 저를 보여줄 수

이 시작을 위해 나쁘지 않다
p <- ggplot(data=table) + stat_bin(aes(x=factor(in.cw), y=..count.., fill = factor(external))) 
p + stat_bin(data=table, aes(x=factor(fixed.cw), y=..count..))#, fill = factor(external)) 

내가

:) 생각 색상으로 채워진 티켓은 어떻게 라인 유형을 정의 할 수 있습니까?

는 여기에 데이터의 덤프를 사용 :

> dput(table) 
structure(list(id = 1:16, external = c("x", "", "x", "", "x", 
"", "x", "", "x", "", "x", "", "x", "", "x", ""), in.date = c("01.11.2013", 
"07.11.2013", "15.11.2013", "01.11.2013", "07.11.2013", "15.11.2013", 
"01.11.2013", "07.11.2013", "15.11.2013", "01.11.2013", "07.11.2013", 
"15.11.2013", "01.11.2013", "07.11.2013", "15.11.2013", "01.11.2013" 
), fixed = c("15.11.2013", "", "", "15.11.2013", "20.11.2014", 
"", "", "05.01.2014", "05.01.2014", "05.01.2014", "", "", "01.03.2014", 
"01.04.2014", "", "01.05.2014"), in.cw = c("1344", "1345", "1346", 
"1344", "1345", "1346", "1344", "1345", "1346", "1344", "1345", 
"1346", "1344", "1345", "1346", "1344"), fixed.cw = c("1346", 
NA, NA, "1346", "1447", NA, NA, "1402", "1402", "1402", NA, NA, 
"1409", "1414", NA, "1418")), .Names = c("id", "external", "in.date", 
"fixed", "in.cw", "fixed.cw"), row.names = c(NA, -16L), class = "data.frame") 

이것은 내가 만든 바로 테스트 데이터입니다.

'외부'는 고객이 작성한 항목을 표시합니다.

'in.date'는 생성 날짜를 정의합니다.

'고정'은 오류 보고서를 닫는 날짜를 정의합니다.

'in.cw'및 'fixed.cw'는 보고서를 작성/닫는 연도와 callendar 주를 나타냅니다.

처음에는 보고서에 대한 개요와 닫힌 보고서의 차트를 작성하려고합니다. 이상적으로는 다른 항목과 별도의 externel입니다. 또한 in.cw 및 fixed.cw 값을 기반으로 한 예측이 유용 할 것입니다. 감사 Wasili

감사합니다,
Wasili

+3

먼저 데이터 프레임에서 dput()을 호출하고 출력을 쉽게 공유 할 수 있도록 붙여 넣습니다. 둘째, 열이 무엇인지 구체적으로 달성하고자하는 것을 설명 할 수 있습니다. 예를 들어 몇 개의 차트에 정보를 표시해야합니까? 어떤 세분화가 유용할까요? – ako

+0

데이터에 어떤 유형의 빈도가 있는지 모르지만 새 사례를 요일, 주 또는 다른 요일로 요약하고 싶습니까? – ako

답변

0

난 아직도 당신이 찾고있는 조직의 정확히 어떤 종류의 모르겠지만, 이것은 당신이 시작하고 음모를 꾸미고하기 전에 데이터를 요약 할 가정 얻어야한다.

library(ggplot2) 
library(plyr) 

test<-structure(list(id = 1:16, external = c("x", "", "x", "", "x", 
"", "x", "", "x", "", "x", "", "x", "", "x", ""), in.date = c("01.11.2013", 
"07.11.2013", "15.11.2013", "01.11.2013", "07.11.2013", "15.11.2013", 
"01.11.2013", "07.11.2013", "15.11.2013", "01.11.2013", "07.11.2013", 
"15.11.2013", "01.11.2013", "07.11.2013", "15.11.2013", "01.11.2013" 
), fixed = c("15.11.2013", "", "", "15.11.2013", "20.11.2014", 
"", "", "05.01.2014", "05.01.2014", "05.01.2014", "", "", "01.03.2014", 
"01.04.2014", "", "01.05.2014"), in.cw = c("1344", "1345", "1346", 
"1344", "1345", "1346", "1344", "1345", "1346", "1344", "1345", 
"1346", "1344", "1345", "1346", "1344"), fixed.cw = c("1346", 
NA, NA, "1346", "1447", NA, NA, "1402", "1402", "1402", NA, NA, 
"1409", "1414", NA, "1418")), .Names = c("id", "external", "in.date", 
"fixed", "in.cw", "fixed.cw"), row.names = c(NA, -16L), class = "data.frame") 

## code external/interlal variable 
test$origin<-ifelse(test$external=='x','external','internal') 

## store dates as actual date objects 
test$in.date<-as.Date(test$in.date,format='%d.%m.%Y') 
test$fixed<-as.Date(test$fixed,format='%d.%m.%Y') 

## calculate process time in days for completed records 
test$fixtime<-test$fixed-test$in.date 

## discretize process time into groups for summary purposes 
test$fixtime_categories<-cut(as.numeric(test$fixtime),breaks=c(seq(1,100,40),Inf)) 


## summarize data by categorized process time and whether origin=external 
summary_data <- ddply(test, 
         .(fixtime_categories,origin), summarise, 
         records = length(id)) 

## plotting 
ggplot(summary_data)+ 
    geom_bar(aes(x=fixtime_categories,y=records),stat="identity") +#,position="fill") + 
    facet_wrap(~origin)+ 
    ggtitle('Process time by (exernal) filing status') 

이 그들을 완료하는 데 걸린 시간에 의해 케이스의 수를 보여주는 다음 차트를 산출한다 (여기를, 그 아직 완료하는 NA의 사람들은, 사람들은 사용 사례에 따라 탈락하거나 포함 할 수 있음) . 왼쪽 패널은 외부 사례입니다. 오른쪽 패널 내부 패널. enter image description here

관련 문제