2013-10-28 3 views
0

편집 : 여기에 데이터의 : 다음바 플롯

date  ID   date_ID  perc_yes perc_no 
1 20130107 Blue 20130107 Blue -0.10394265 0.8960573 
2 20130109 Red  20130109 Red -1.00000000 0.0000000 
3 20130111 Red  20130111 Red -1.00000000 0.0000000 
4 20130111 Red  20130111 Red -1.00000000 0.0000000 
5 20130113 Red  20130113 Red -1.00000000 0.0000000 
6 20130114 Red  20130114 Red -1.00000000 0.0000000 
7 20130114 White 20130114 White -0.40425532 0.5957447 
8 20130122 Green 20130122 Green -0.09297913 0.9070209 
9 20130125 Black 20130125 Black -1.00000000 0.0000000 
10 20130125 Purple 20130125 Purple -0.17864924 0.8213508 
11 20130128 Purple 20130128 Purple -0.12353401 0.8764660 

그것은 날짜, ID를 나열하고 :

date<-c("20130107", "20130109", "20130111", "20130111", "20130113", "20130114", "20130114", "20130122", "20130125", "20130125", "20130128") 
ID<-c("Blue","Red","Red","Red","Red","Red","White","Green","Black","Purple","Purple") 
date_ID<-c("20130107 Blue", "20130109 Red", "20130111 Red", "20130111 Red", "20130113 Red", "20130114 Red", "20130114 White", "20130122 Green", "20130125 Black", "20130125 Purple", "20130128 Purple") 
perc_yes<-c(-0.10394265, -1.00000000, -1.00000000, -1.00000000, -1.00000000, -1.00000000, -0.40425532, -0.09297913, -1.00000000, -0.17864924, -0.12353401) 
perc_no<-c(0.8960573, 0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.5957447, 0.9070209, 0.0000000, 0.8213508, 0.8764660) 
data<-data.frame(date,ID,date_ID,perc_yes,perc_no) 

이 나는 ​​것 같습니다 dataframe이 날짜 및 ID는 그룹화 된 방법, 백분율 예 및 백분율 아니요. 나는 날짜와 ID로 바 그래프를 만들고 싶습니다. 바코드는 시간순으로 정렬되어 있고 바는 동일한 날짜이지만 다른 ID를 사용하는 경우 함께 그룹화됩니다. 백분율 yes는 음수이고 나는 백분율 no 아래에서 음의 y 방향으로 떨어지기를 원합니다.

여러 데이터 요소와 스태킹이있어 바롯을 성공시키지 않았습니다. 플롯 함수에서 lines()과 같이 여러 개의 막대 그래프 점을 추가 할 수 있습니까? 데이터를 플로팅하는 방법은 무엇입니까? ggplot을 사용하는 것이 더 낫겠습니까 (그 중 일부는 익숙하지 않습니다)?

+0

택시 당신하십시오 ['dput' 또는'reproduce' 데이터 (HTTP : //stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610). 공백으로 구분 된 변수와 _within_ 변수 (date_ID)를 사용하여 현재 형식으로 읽는 것이 약간 까다 롭습니다. 코드가 [복사, 붙여 넣기, 컴파일 및 실행] 될 수 있다면 (http://sscce.org/#selfcon) 도움을주는 것이 훨씬 쉽습니다. 감사! – Henrik

+0

데이터가 업데이트되었습니다. 죄송합니다. 감사! –

답변

0

ggplot2이 더 융통성이 있다고 생각하지만, 그것에 대해 전혀 모른다. 아마 다음과 같은 경우에만 barplot이 - 특수 - 수도있을 조금 도움이 :

#turn `data$date` to actual date 
data$date <- as.Date(data$date, format = "%Y%m%d") 

#sort by date 
data <- data[order(data$date),] 

#`space` argument of barplot; 
#to group together same dates based on their difference in days 
#see ?diff.Date 
space. <- diff(data$date) + 0.5 
space. <- c(space.[1], space.) 

#plot no's 
barplot(data$perc_no, names.arg = paste0(data$date, "\n", data$ID), cex.names = 0.7, 
     ylim = c(range(c(data$perc_yes, data$perc_no))), 
     col = rgb(1,0,0,1/3), space = space.) 

#plot yes' 
barplot(data$perc_yes, col = rgb(0,0,1,1/3), , space = space., add = T) 

을 줄거리 보이는 같은 :

barplot

관련 문제