2013-08-26 3 views
0

분할 선 그림을 사용하고 있는데 요인 (이 경우 환자 ID)을 기준으로 y 축에 변수를 그룹화하려고합니다. 환자가 자신의 ID로 그룹화되고 각 고유 ID에 대해 하나의 레이블 만 제공되도록 y의 틱의 너비를 어떻게 변경할 수 있습니까?ggplot2에서 geom_segment를 사용하여 y 축의 변수를 그룹화합니다.

내 데이터 및 플롯의 예는 다음과 같습니다.

ggplot(data) + 
    geom_segment(aes(x=age1, xend=age2, 
        y=PatientID, yend=PatientID, colour=mortality)) + 
    scale_colour_manual(values=c("green", "red", "black")) 

데이터 : I 샘플 데이터를 제공하지만, 출력이 질문에 기재된 바와 같이 원하는 출력과 유사한 것으로 보인다 사용한

PatientID age1  age2 mortality 
11313   0  30  low 
11313   31  50  low 
11313   51  65  med 
11313   0  10  med 
11313   0  50  hi 
131NY   0  30  med 
143CA   24  27  hi 
165099   23  45  med 
165099   46  55  hi 
165099   40  55  med 
+0

에 오신 것을 환영합니다. 데이터가 보이는 것처럼 붙여 넣기보다는'dput()'의 결과를 사용하여 데이터를 포함하도록 질문을 편집하십시오 - [이 매우 유용한 질문] (http://stackoverflow.com/questions/5963269/how-to) -make-a-great-r-reproducible-example)을 참조하십시오. 'dput (head (data, 20)) '과 같은 것이 트릭을해야합니다. 아, 그리고 R에 내장 된 함수의 이름 인 데이터'data'를 호출하지 않는 것이 좋습니다. – SlowLearner

+0

ggplot2_0.9.3.1과 작동하는 것 같습니다. – Henrik

답변

0

. 환자는 ID별로 그룹화되며 각각 하나의 레이블 만 갖습니다 (아래 11313 참조). 내가 놓친 게 있니? 스택 오버플로

screenshot

library(ggplot2) 

mytext <- "PatientID,age1,age2,mortality 
11313,0,30,low 
11313,31,50,low 
11313,51,65,med 
131NY,0,30,med 
143CA,24,27,hi 
165099,23,45,med 
165099,46,55,hi" 

dat <- read.table(textConnection(mytext), sep = ",", 
        check.names = FALSE, 
        strip.white = TRUE, 
        header = TRUE) 

ggplot(dat) + 
    geom_segment(aes(x = age1, xend = age2, 
        y = PatientID, yend = PatientID, colour = mortality)) + 
    scale_colour_manual(values = c("green", "red", "black")) 
+0

내 잘못입니다. 데이터에도 겹치는 선이 있어야합니다. PatientID = 11313; age1 = 0; age2 = 10; 사망률 = 낮음. 고유 ID를 사용하는 경우 서로 위에 그려지며, ID를 변경하여 해당 행 (예 : 11313 및 11313a)을 반영하면 y를 따라 주어진 거리에 플롯됩니다. – user2719033

+0

글쎄, 이것은 정확하게'dput' 또는 유사한 방법을 사용하여 적절한 데이터 하위 집합을 제공하는 것에주의를 기울이는 것이 중요합니다. 질문을 편집하여 우리가 실제로 작업하기를 원하는 데이터를 반영하면 도움을받을 수 있습니다. – SlowLearner

+0

데이터가 "겹치는"선분을 반영하도록 수정됩니다. – user2719033

관련 문제