2013-07-11 4 views
3

저는 R에 상당히 익숙해졌습니다.R : 연속적인 x 축의 막대 그래프 (시간 조정)

두 개의 조건 (하나의 timpoint)에서 서로 다른 시점에서 데이터를 가져 왔으며이를 오류 막대 및 적절한 시간대의 막대로 막대 그래프로 플롯하려합니다.

나는 현재이 (이 사이트에 또 다른 질문에서 도난) 한 :

library(ggplot2) 
example <- data.frame(tp = factor(c(0, "14a", "14b", 24, 48, 72)), means = c(1, 2.1, 1.9, 1.8, 1.7, 1.2), std = c(0.3, 0.4, 0.2, 0.6, 0.2, 0.3)) 
ggplot(example, aes(x = tp, y = means)) + 
    geom_bar(position = position_dodge()) + 
    geom_errorbar(aes(ymin=means-std, ymax=means+std)) 

지금 내 시점들이 요인이 있지만, 시간에 걸쳐 측정의 불평등 한 분배가 있다는 사실이다 줄거리 덜 좋은합니다 .!

이 내가 그래프 상상하는 방법입니다

enter image description here

내가 당신에게 아주 좋은 그래프를 줄 수있는 ggplot2 패키지를 찾을 수 있습니다,하지만 난 더 많은 어려움 나는 다른 R 물건과 함께있는 것보다 이해가 있습니다.

+0

내가 뭔가를 어쩌면 그리워, 당신의 시점들는 요인이 있지만 원하는 음모에 그들은 수치로 간주됩니다? 14a와 14b는 어디에 있습니까? – agstudy

답변

2

R에 들어가기 전에 막대 그래프에서도 x 축에 숫자 값이 필요하다는 것을 알아야합니다. 요인으로 간주하면 소프트웨어는 기본적으로 막대 사이의 간격을 동일하게 가정합니다. 이 경우 각 막대의 x 값은 어떻게됩니까? 그것은 (0, 14, 14, 24, 48, 72) 일 수 있지만 당신이 원하지 않는 14 번 지점에 두 개의 막대를 그립니다. 따라서 x 값을 찾아야합니다.

Joran 위치 막대는 X 축의 오른쪽 위치에서 떨어질 수 있도록 joran 주어진 코드를 수정 (14)에 바의 폭을 수정하여 우아한 솔루션을 제공하고, 최종 용액은 :

library(ggplot2) 
example <- data.frame(tp = factor(c(0, "14a", "14b", 24, 48, 72)), means = c(1, 2.1, 1.9, 1.8, 1.7, 1.2), std = c(0.3, 0.4, 0.2, 0.6, 0.2, 0.3)) 

example$tp1 <- gsub("a|b","",example$tp) 
example$grp <- c('a','a','b','a','a','a') 
example$tp2 <- as.numeric(example$tp1) 

ggplot(example, aes(x = tp2, y = means,fill = grp)) + 
    geom_bar(position = "dodge",stat = "identity") + 
    geom_errorbar(aes(ymin=means-std, ymax=means+std),position = "dodge") 

enter image description here

+0

고마워, 나는 그 세부 사항을 발견 했어야했다. 나는 당신의 다른 대답을 제거하고, 간단히 그것을이 토론의 일부로 포함시킬 것입니다. 그것은 아주 잘 자체적으로 서 있지 않습니다. – joran

+0

감사합니다. 답변을 수정하고 다른 답변을 삭제했습니다. –