2014-03-06 3 views
0

필자는 ggplot2 및 Image Magick을 사용하여 일련의 인구 분포도를 만들었으며 각 샘플에는 개인 수와 위도와 경도 값이 있습니다. 그러나 값의 범위는 플롯에서 플롯으로 달라 지므로 플롯 간의 크기는 일정합니다. 나는 그래프 사이의 값의 크기를 일정하게 유지하려고한다. (즉, 값이 30 이하인 점은 크기가 커지기 전에 음모가 10이된다). 어떤 도움을 주시면 더 좋구요ggplot2의 플롯간에 포인트 크기 스케일을 일정하게 유지하는 방법은 무엇입니까?

#simulating latitude and longitude point creation 
    a <- c("1","1") 
    b <- c("2","2") 
    c <- c("3","1") 

    x <- rbind(a,b,c) 
    x <- as.data.frame(x) 

    #simulating the total individual count in my data 
    mag1 <- as.numeric(c("2", "6", "10")) 
    mag2 <- as.numeric(c("2", "6", "30")) 

    d1 <- cbind(x, mag1) 
    d2 <- cbind(x, mag2) 

    #Plotting the two scatter plots 
    g1 <- ggplot(data=d1, aes(x=V1, y=V2)) + geom_point(aes(size=mag1)) 
    g1 
    g2 <- ggplot(data=d2, aes(x=V1, y=V2)) + geom_point(aes(size=mag2)) 
    g2 

:

는 여기에 재현 예입니다! (코드가 지저분하거나, 제 질문이 100 % 명확하게 전달되지 않으면 사전에 사과하십시오.)

답변

3

모든 플롯에 대해 scale_size_continuous()을 사용하고 동일한 limits=을 사용하십시오. 인수 breaks=을 사용하면 범례에서 얻을 값 (나누기)을 설정할 수 있습니다. 플롯에서 얻는 포인트의 최대 크기가 너무 작 으면 range= 인수를 변경할 수 있습니다. 기본값은 range=c(1,6)입니다.

g1 + scale_size_continuous(limits=c(1,30),breaks=c(5,10,20,30)) 

g2 + scale_size_continuous(limits=c(1,30),breaks=c(5,10,20,30)) 
관련 문제