我制作了一系列人口分布图的 GIF(使用 ggplot2 和 Image Magick),其中每个样本都有个体数量以及纬度和经度值。但是,值的范围因地 block 而异,因此地 block 之间的大小是恒定的。我试图在图表之间保持值的大小不变(即,其下方值为 30 的点的大小将大于其之前值为 10 的图)。
这是一个可重现的例子:
#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 的新手!)
最佳答案
使用 scale_size_continuous()
并设置相同的 limits=
对于所有地 block 。带参数 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))
关于r - 如何保持 ggplot2 中绘图之间的点大小比例恒定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22231572/