2017-11-20 1 views
0

축 레이블에 특수 문자와 그리스어 문자를 삽입하는 방법에 대한 훌륭한 설명서가 많이 있지만 ggplot의 축 레이블에 축 레이블을 붙여 넣을 필요는 없습니다. 약간 복잡한 X 축을 가진 그래프를 만들었으며 공동 작업자는 축 레이블 텍스트에 의 색이 지정된 사각형으로 축을 포맷하도록 제안 했으므로 독자는 어떤 축 레이블이 어떤 데이터 시리즈를 참조하는지 참조 할 수 있습니다 . 2범례 색을 rggplot 축 레이블에 삽입하십시오.

그리고 여기에 난을 x 축 레이블을 원하는 무엇

[ORANGE SQUARE] 시리즈 1

[BLUE SQUARE] 시리즈 :처럼 여기

는 그림의 전설 현재 모습입니다 이 글은 그래픽 이런 종류의 조작을 할 수 있나요 km [ORANGE SQUARE] 또는 km/년 [BLUE SQUARE]

에서

넓이 :처럼 R을 사용하거나 다른 이미지 처리 소프트웨어에서 이러한 종류의 레이블을 만들어야합니까? 여기에 내가 사용하고 플로팅 코드는 일부 가짜 데이터,이다 :

SERIES1 <- as.data.frame(sample(1:100, 100, replace=TRUE)) %>% mutate(source="SERIES1") 
SERIES2 <- as.data.frame(sample(1:1000, 100, replace=TRUE)) %>% mutate(source="SERIES2") 
SERIES3 <- as.data.frame(sample(1:10000, 100, replace=TRUE)) %>% mutate(source="SERIES3") 
colnames(SERIES1) <- c("value","source") 
colnames(SERIES2) <- c("value","source") 
colnames(SERIES3) <- c("value","source") 
gg_df <- rbind(SERIES1, SERIES2, SERIES3) 

fig1A <- ggplot(gg_df) + 
    geom_density(alpha=0.5, size=0.2, aes(x=value, y=..scaled.., fill=factor(source, labels=c('SERIES1','SERIES2','SERIES3')))) + 
    scale_x_continuous(limits=c(0,16000), breaks=c(seq(0, 16000, by=2000))) + 
    labs(x='Extent (km) or (km/dec)',y='Density') + 
    theme_bw() + 
    theme(legend.position=c(0.8, 0.85), legend.title=element_blank()) + 
    scale_fill_brewer(type='qual',palette='Dark2') 

답변

1

cowplot 패키지

require(cowplot) 

첫 ggplots 위에 주석을위한 좋은 기능을 가지고, 확인하기 위해 X 라벨에 공백을 추가 당신의 사각형에 대한 dataframe 포함 x와 y 위치를 확인

fig1A <- ggplot(gg_df) + 
    geom_density(alpha=0.5, size=0.2, aes(x=value, y=..scaled.., 
     fill=factor(source, labels=c('SERIES1','SERIES2','SERIES3')))) + 
    scale_x_continuous(limits=c(0,16000), breaks=c(seq(0, 16000, by=2000))) + 
    labs(x='Extent (km)  or (km/dec)  ',y='Density') + 
    theme_bw() + 
    theme(legend.position=c(0.8, 0.85), legend.title=element_blank()) + 
    scale_fill_brewer(type='qual',palette='Dark2') 

사각형 공간

squares <- data.frame(x = c(0.53, 0.75), y = c(0.017,0.017)) 

cowplot에서 ggdraw 함수를 사용하여 그래프를 그리고 그 위에 사각형을 주석으로 표시하십시오. 플롯 영역 내에서만 주석을 허용하는 ggplot의 annotategeom_rect과 달리 cowplot을 사용하여 그림의 아무 곳에 나 주석을 달 수 있습니다. 사각형의 위치는 플롯에서 왼쪽에서 오른쪽으로 그리고 아래에서 위로가는 0 - 1 눈금을 사용하여 부여됩니다. 그래프를 저장하는 크기에 따라 숫자를 조정해야 할 것입니다.

ggdraw(fig1A) + 
geom_rect(data = squares, aes(xmin = x, xmax = x + .02, 
          ymin = y, ymax = y + .02), 
     fill = c("orange", "blue")) 

resulting plot

관련 문제