2

我画了两个图表,但希望两者都有相同的点比例以进行比较

geofirmen<-data.frame(lon=c(1,2,3), lat=c(1,2,3), freqplz=c(5,10,15))
ggplot(data= geofirmen) + geom_point(aes(x = lon, y = lat, size=freqplz, alpha=.7), colour = "dodgerblue4")

geofirmen<-data.frame(lon=c(1,2,3), lat=c(1,2,3), freqplz=c(5,10,20))
ggplot(data= geofirmen) + geom_point(aes(x = lon, y = lat, size=freqplz, alpha=.7), colour = "dodgerblue4")

看起来一样,但更小 看起来一样,但更大

我希望两者都具有更大比例的传奇比例。注意,图表的比例没有改变,因为我画了一张地理地图,但 freqplz 的大小必须相同,值为 10 等。这是如何工作的?

4

1 回答 1

1

如果您确实需要两个单独的图,那么您可以scale_size()对两个图使用相同的定义(添加到两个ggplot()命令),您可以在其中定义breaks=并设置limits=包含两个图的值。

+ scale_size(breaks=c(5,10,15,20),limits=c(0,20))

另一种解决方案是将所有数据放在一个包含分组列的数据框中(group在示例数据中)。然后添加facet_wrap()为每个级别制作方面。在这种情况下,只有一个图例。coord_fixed()用于确保xy轴之间的固定纵横比。

geofirmen.new<-data.frame(lon=c(1,2,3,1,2,3), lat=c(1,2,3,1,2,3), 
    freqplz=c(5,10,15,5,10,20),group=c(1,1,1,2,2,2))

ggplot(data= geofirmen.new,aes(x = lon, y = lat, size=freqplz)) + 
    geom_point(alpha=.7, colour = "dodgerblue4") + 
    facet_wrap(~group,ncol=1) + coord_fixed()

在此处输入图像描述

于 2013-01-14T15:13:15.793 回答