저는 R이 처음이므로, 아래 그림과 같은 차트를 작성할 수 있는지 알고 싶습니다.R로 사용자 정의 차트 그리기 - 활성 시간 로그 표시
나는 주어진 시간에 다양한 사람들에 의해 완성 활동의 지속 시간을 표시하는 사용자 정의 차트를 만들 싶습니다.
저는 R이 처음이므로, 아래 그림과 같은 차트를 작성할 수 있는지 알고 싶습니다.R로 사용자 정의 차트 그리기 - 활성 시간 로그 표시
나는 주어진 시간에 다양한 사람들에 의해 완성 활동의 지속 시간을 표시하는 사용자 정의 차트를 만들 싶습니다.
각 활동에 시작 및 종료 시간이있는 데이터의 다른 형식을 제안하고 싶습니다.
라이브러리로드. 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")
이것은 일반적으로 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))
당신은 가까이 당신이 그린 그림에 그것을 얻기 위해 ggplot2
옵션을 탐구하고 더 사용자 정의를 수행하여 다음 단계로 걸릴 수 있습니다 . 예를 들어 당신은 바
geom_label
하나의 방법입니다)단지 작성자의 크기