2013-01-23 25 views
20

다음은 내가 원하는 것을 거의 나타내는 플롯의 예제 코드입니다. 내가 추가하고자하는 것은 아래에 정의 된 minor_breaks에 따라 x 축 (주요 틱과 동일한 크기)의 눈금입니다. 사전에ggplot2의 x 축에 작은 눈금 표시 추가 (레이블 없음)

df <- data.frame(x = c(1900,1950,2000), y = c(50,75,60)) 

p <- ggplot(df, aes(x=x, y=y)) 
    p + geom_line() + 
    scale_x_continuous(minor_breaks = seq(1900,2000,by=10), breaks = seq(1900,2000,by=50), limits = c(1900,2000), expand = c(0,0)) + 
    scale_y_continuous(breaks = c(20,40,60,80), limits = c(0,100)) + 
    theme(legend.position="none", panel.background = element_blank(), 
    axis.line = element_line(color='black'), panel.grid.minor = element_blank()) 

감사합니다, --JT

+7

. 내가 본/사용한 옵션은 다음과 같습니다. 1 : 작은 눈금 선을 사용합니다. 2 : 수동으로 눈금을 추가하십시오. (다소 고통스러운 접근 방식이지만,이 작업을 수행 할 수있는 미래의 기능/패키지를 구상 할 수 있습니다.) – N8TRO

+0

뻔뻔스러운 자기 승진 :이 [대답] (http://stackoverflow.com/ a/34533473/2726564) – manimal

답변

18

이것은 정확한 인스턴스에서 그것을 할 것입니다 :

scale_x_continuous(breaks= seq(1900,2000,by=10), 
        labels = c(1900, rep("",4), 1950, rep("",4), 2000), 
        limits = c(1900,2000), expand = c(0,0)) + 

여기 방탄이 아니라 빈 라벨을 삽입하기 위해 노력하는 기능입니다 시작 및 종료 메이저 레이블이 at 인수의 시작 및 중지 값과 정렬 될 때 :

insert_minor <- function(major_labs, n_minor) {labs <- 
           c(sapply(major_labs, function(x) c(x, rep("", 4)))) 
           labs[1:(length(labs)-n_minor)]} 

시험 :이 요청을 여러 번 본 적이 좋은 대답을 보지 못했다

p <- ggplot(df, aes(x=x, y=y)) 
    p + geom_line() + 
    scale_x_continuous(breaks= seq(1900,2000,by=10), 
        labels = insert_minor(seq(1900, 2000, by=50), 4), 
        limits = c(1900,2000), expand = c(0,0)) + 
    scale_y_continuous(breaks = c(20,40,60,80), limits = c(0,100)) + 
    theme(legend.position="none", panel.background = element_blank(), 
     axis.line = element_line(color='black'), panel.grid.minor = element_blank()) 
+0

감사합니다. 그게 내가하고있는 일에 효과가있을거야. 심지어 빈 레이블로 모든 주요 눈금 표시를 효과적으로 만들 것이라고 생각하지 않았습니다. – JimmyT

+2

정말 필요한 것은 시퀀스에 공백을 삽입하는 함수입니다. 좋은 후속 질문 일 수 있었다. –

+1

Re : 순서에 공백 삽입 : [here 's] (http://stackoverflow.com/questions/34533472/insert-blanks-into-a-vector-for-eg-minor-tick-labels-in-r) my 작은 눈금 표시에 예제 응용 프로그램으로 이동하십시오 – manimal

관련 문제