2017-12-06 43 views
1

을 사용하여 ggplot을 플로팅합니다. x 축은 개인의 ID이고 y 축은 변수 A입니다. 레이블을 겹치지 않고 x 축에서 모든 ID 값과 개별 ID 값을 어떻게 그래 프 할 수 있습니까? ID가 연속적이지 않을 수 있습니다.ggplot 모든 x 축 값을 가진 x 축 레이블

DF 샘플 (실제 행 훨씬 이상)

ID  A 
1  4 
2  12 
3  45 
5  1 

코드

(Y DF, AES (X = ID = A))

ggplot + geom_point() 코드 위

간격으로 x 축을 갖지만 개별 ID는 제시하지 않습니다.

감사합니다.

+0

당신의 ID 이름이 매우 긴 것으로 가정. 라벨을 회전시키는 것이 좋습니다. 참조 : https://stackoverflow.com/questions/1330989/rotating-and-spacing-axis-labels-in-ggplot2 – Linus

답변

1

이게 당신이 찾고 있는게 있나요?

ID <- 1:50 
A <- runif(50,1,100) 

df <- data.frame(ID,A) 

ggplot(df, aes(x = ID, y = A)) + 
    geom_point() + 
    theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) + 
    scale_x_continuous("ID", labels = as.character(ID), breaks = ID) 

이이 이미지를 생성합니다 :

enter image description here

그래서 당신은 모든 ID 값의 레이블을 얻을 것이다. 당신이 눈금 선을 제거하려는 경우 theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())

EDIT를 추가하여 당신이 그들을 제거 할 수 있습니다 (내 취향을 너무 많이 있습니다) : 더 쉬운 방법은 바로 플롯의 요인으로 ID를 사용하는 것입니다. 같은 : 라벨이 겹치는 문제에 관하여 :

ggplot(df, aes(x = factor(ID), y = A)) + 
    geom_point() + 
    theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) + 
    xlab("ID") 

enter image description here

이 방법의 장점은없는 ID를

EDIT2에서 빈 공간을 얻을 수 없다는 것입니다 난 짐작할 점은 많은 수의 ID로 구성된다는 것입니다. 우리가 이것을 처리 할 수있는 몇 가지 방법이 있습니다.

ggplot(df, aes(x = factor(ID), y = A)) + 
    geom_point() + 
    scale_x_discrete(breaks = ID[c(T,F,F)]) + 
    theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) + 
    xlab("ID") 

리드 :

enter image description here

하나의 아이디어가 축 브레이크 인수를 수정하여 x 축에서 각 3 라벨을 숨길 것 : 그래서 당신의 줄거리는 다음과 같습니다 말할 수 이에 : 레이블을 숨기는 것은 옵션이 아니다

enter image description here

경우에, 당신은 줄거리에 플롯을 분할 할 수있다.

df$group <- as.numeric(cut(df$ID, 4)) 

ggplot(df, aes(x = factor(ID), y = A)) + 
    geom_point() + 
    theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) + 
    xlab("ID") + 
    facet_wrap(~group, ncol = 1, scales = "free_x") 

는이 리드 :

enter image description here

+0

감사합니다! 그게 내가 원하는거야. 그리고 두 번째 플롯 에서처럼 x 레이블 사이의 공간을 늘릴 수 있습니까? 내 것이 겹쳐. – Kay

+0

왜 라벨이 겹치나요? 자네가 많은 신분증을 꾸미려고하는 것 같아. 내 대답을 편집하고 몇 가지 정보를 추가했습니다. 내 아이디어가 도움이되는지 알려주세요. – brettljausn