使用ggplot在多个图中的图例中的相等geom点大小

时间:2017-07-23 14:33:08

标签: r ggplot2

有没有办法在多个图中均衡geom_points的大小,以便它们很容易比较?

即。我希望整个图中100值的大小相等,而不管构成大小值的最小值和最大值。如下所示,geom_points的大小相同,但它们代表不同的值。

enter image description here

enter image description here

graph <- ggplot(mar, aes(x=long, y=lat)) + xlab("Longitude") + ylab("Latitude")
graph  + theme_grey() + geom_point(aes(size=distance$NEAR_DIST)) + scale_size_area() + labs(size = "Distance from predicted LCP Roman\nroad to known Roman road (m)")

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以按如下方式实现:

df1 =data.frame(x=1:20,y=runif(20,1,10),size=runif(20,1,10))
df2 =data.frame(x=1:20,y=runif(20,1,10),size=runif(20,31,40))

maximum = max(c(df1$size,df2$size))

graph <- ggplot(df1, aes(x=x, y=y,size=size)) + geom_point() + 
  scale_size_area(limits=c(1,maximum))

graph2 <- ggplot(df2, aes(x=x, y=y,size=size)) + geom_point() + 
  scale_size_area(limits=c(1,maximum))

enter image description here enter image description here

希望这有帮助!