2014-12-08 2 views
1

Fedora 20에서 R 3.1.2를 사용하고 있습니다. coord_equal()이 godplot() 일 때 ggplot()에 의해 생성 된지도의 위쪽과 아래쪽의 큰 빈 영역에 문제가 있습니다. 익숙한. 이 코드를 보면 : 당신이 밖으로 댓글을 달았 coord_equal() 선으로 표시되는 내용coord_equal() 후 ggplot map에서 위쪽/아래쪽 여백을 제거합니다.

library(maps) 
library(ggplot2) 
jp <- map_data("world",region=c("Japan")) 
options <- par(mar=c(0,0,0,0),oma=c(0,0,0,0)) 
g <- ggplot(jp,aes(x=long,y=lat,group=group,fill=region)) 
g <- g + geom_polygon(colour="black") 
g <- g + labs(x=NULL,y=NULL) 
#g <- g + coord_equal(ratio=1/2) 
g <- g + theme(axis.text.x=element_blank(),axis.text.y=element_blank()) 
g <- g + theme(plot.background=element_rect(fill="lightblue")) 
g 

는 출력 영역을 채 웁니다 일본의지도입니다. 그러나 당신은 coord_equal을()의 주석을 해제하는 경우 :

library(maps) 
library(ggplot2) 
jp <- map_data("world",region=c("Japan")) 
options <- par(mar=c(0,0,0,0),oma=c(0,0,0,0)) 
g <- ggplot(jp,aes(x=long,y=lat,group=group,fill=region)) 
g <- geom_polygon(colour="black") 
g <- g + labs(x=NULL,y=NULL) 
g <- g + coord_equal(ratio=1/2) 
g <- g + theme(axis.text.x=element_blank(),axis.text.y=element_blank()) 
g <- g + theme(plot.background=element_rect(fill="lightblue")) 
g 

무슨 일하면 밝은 파란색 채우기에 의해 명확하게 알 수 있듯이지도 패널, 절반 높이 (폭이 동일)로 변환되는 것입니다. 문제는 플롯 영역이 변경되지 않기 때문에 사실상 플롯의 상단과 하단에 큰 빈 영역이 생기는 것입니다. par (mar)를 사용하면 효과가 없습니다. 마진이 아니기 때문입니다. 그러나 음모가 문서에 포함되어 있으면 분명히 거대한 불필요한 여백처럼 보일 것입니다.

이러한 빈 영역이 나타나지 않도록 할 수있는 옵션이 있습니까? 나는 이것이 단지 최소한의 예라고 말해야한다. "실제 생활에서"지도는 더 복잡하며 즉석에서 생성되어야합니다. 즉, 패널의 좌표와 치수가 변경되어서는 안되기 때문에 해킹이 이미지를 생성 한 다음 필요한 부분을 잘라내는 것이 좋습니다. 그런 일들을 피할 수 있다면 훨씬 더 좋습니다.

감사합니다.

답변

0

이것은 대화식으로 작업 할 때만 문제가되는 것 같습니다. ggsave을 사용하면 결과 이미지를 실제로 저장하기 위해 문제가 해결됩니다. 다음은 실제로 관계없이 coord_equal(ratio=1/2)의 설정 같은 결과에 이르게 : 매우 흥미로운

ggsave('japan.png', height=5, width=10, plot=g) 

enter image description here

+0

합니다. ggplot()이이 기능을 가지고 있음을 암시하는 것처럼 보입니다 ... 액세스하는 방법을 알아내는 것뿐입니다! – user4294565

관련 문제