2016-06-07 2 views

답변

1

각 활동에 시작 및 종료 시간이있는 데이터의 다른 형식을 제안하고 싶습니다.

라이브러리로드. dplyr은 데이터 집합을 조작하는 데만 사용되며 엄격하게 필요하지는 않습니다.

library(ggplot2) 
library(dplyr) 

먼저 우리는 데이터가

activities <- read.csv2(
text= 
    "Person; Activity; Activity start; Activity end 
    A; Activity 1; 10:30; 11:30 
    A; Activity 2; 12:00; 13:00 
    A; Activity 3; 14:00; 16:00 
    B; Activity 1; 10:30; 11:30 
    B; Activity 2; 11:30; 13:00 
    B; Activity 3; 14:00; 14:30" 
) %>% 
    mutate(
     Activity.start = as.POSIXct(Activity.start, format="%H:%M"), 
     Activity.end = as.POSIXct(Activity.end, format="%H:%M"), 
     Person = as.factor(Person) 
) 

그래서 지금 우리는 컬럼에 대한 올바른 수업을 설정 읽고 우리는

결과

ggplot(activities) + 
    geom_rect(
     aes(
      xmin=Activity.start, 
      xmax=Activity.end, 
      fill=Activity, 
      ymin=as.numeric(Person)-.5, 
      ymax=as.numeric(Person)+.5) 
     ) + 
    scale_y_continuous(labels=levels(activities$Person), breaks=1:2) + 
    geom_text(
     aes(x=(Activity.start + (Activity.end - Activity.start)/2), y=as.numeric(Person), label=Activity) 
    ) + 
    xlab(NULL) + 
    ylab("Person") 

으로이 플롯 할 수 있습니다 Example plot

1

이것은 일반적으로 R로 작성하는 그래프 유형은 아니지만 반드시 충분한 다리 작업으로 풀어 낼 수는 있습니다.

나는 이것이 당신이 밀어서 시동 얻을 것이라고 생각 :

require(lubridate) 
require(ggplot2) 

df    <- as.data.frame(matrix(nrow=14,ncol=3)) 
colnames(df) <- c("Person", "Time", "Activity") 
df$Person  <- c("A","A","A","A","A","A", "A", 
        "B","B","B","B","B","B", "B") 
df$Time   <- as.character(hours(c(10,11,12,13,14,15,16))) 
df$Activity  <- c(NA, "Activity 1", NA, "Activity 2", NA, "Activity 3","Activity 3", 
        NA, "Activity 1", "Activity 2", NA, NA, "Activity 3", NA) 

ggplot(df, aes(Time, Person)) + geom_tile(aes(fill = Activity), 
               colour = "white") + scale_fill_manual(values = rainbow (3)) 

enter image description here

당신은 가까이 당신이 그린 그림에 그것을 얻기 위해 ggplot2 옵션을 탐구하고 더 사용자 정의를 수행하여 다음 단계로 걸릴 수 있습니다 . 예를 들어 당신은 바

  • 오버레이 전설의 라벨 (geom_label 하나의 방법입니다)
  • 미세 조정 눈금
  • 단지 작성자의 크기

    • 변화 할 수 있어야한다 읽고 옵션을 조정할 수 있습니다. 나는 최근에 당신이 빠른 검색으로 찾을 수있는 고도로 맞춤화 된 눈금에 대한 답을 주었다.