2014-03-06 39 views
0

我製作了一系列人口分佈圖(使用ggplot2和Image Magick)的GIF,其中每個樣本都有個體數量和經度和緯度值。但是,值的範圍因圖而異,因此圖之間的大小是恆定的。我試圖在圖形之間保持值的大小不變(即,低於該值的點的值爲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%清楚地傳達,我是R新手!)

回答

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)) 
相關問題