我正在使用 ggplot 绘制多面图,并且无法弄清楚如何在保持 xy 纵横比固定的同时在每个方面允许“自由”比例(这样小区域看起来不会太小)。
这是一个简化的示例:
require(maps)
require(ggplot2)
map_nz <- subset(fortify(map_data('nz')),
region %in% c("South.Island ", "North.Island "))
gg_nz <- qplot(long, lat, data=map_nz, geom="polygon", group=group)
我现在有一个新西兰北岛和南岛的地块。我可以对此进行分面并以固定的纵横比显示它,如下所示:
gg_nz + coord_fixed() + facet_wrap(~region)
结果如下所示:
请注意,在北岛方面浪费了相当多的空间。我希望它占用更多的可用空间。我可以像这样释放秤:
gg_nz + facet_wrap(~region, scales="free")
结果如下:
问题是每个刻面的 xy 纵横比不再是 1:1。我很高兴每个方面都有不同的比例,但在方面我想保留纵横比。
我尝试了以下但没有成功:
gg_nz + facet_wrap(~region, scales="free") + coord_fixed()
大概是overrides中的scale
参数。有什么建议么?facet_wrap
coord_fixed
更新:为了给出更生动的说明,美国一些州也出现了同样的现象:
固定坐标(使用coord_fixed
or coord_equal
):
免费坐标(使用scales = free
):
这些地图都不是理想的:首先,特拉华州很小。在第二个中,纵横比非常扭曲。例如,新泽西州是一个狭窄的州,被拉伸得太宽了。