Я использую 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()
Предположительно, параметр scale
в facet_wrap
переопределяет coord_fixed
. Какие-либо предложения?
ОБНОВЛЕНИЕ: чтобы дать более драматичную иллюстрацию, здесь одно и то же явление с некоторыми штатами США:
Фиксированные координаты (с использованием функции coord_fixed
или coord_equal
):
Свободные координаты (с использованием scales = free
):
Ни одна из этих карт не идеальна: во-первых, Делавэр крошечный. Во втором аспекте пропорции довольно искажены. Например, Нью-Джерси, которая является узким государством, слишком растянута.