Как работает ggplot scale_continuous expand аргумент?
Я пытаюсь понять, как scale_continuous()
expand
аргумент работает. В соответствии с документацией scale_continuous:
Числовой вектор длины два, дающий мультипликативные и аддитивные константы расширения. Эти константы обеспечивают размещение данных на некотором расстоянии от осей. Значения по умолчанию: c(0.05, 0) для непрерывных переменных и c(0, 0.6) для дискретных переменных.
Поскольку они являются "константами расширения", они не являются действительными единицами. Есть ли способ преобразовать их в какое-то фактическое измерение, чтобы предсказать фактический результат? Для всего, кроме 0, я просто пробую случайные числа, пока это не сработает. Должен быть более правильный подход к этому.
2 ответа
Документ довольно понятен. Если вы установите limits
вручную было бы более понятно. Я приведу несколько примеров, чтобы показать, как это работает:
первый аргумент дает расширение, равное его умножению на предельный диапазон;
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
scale_x_continuous(limits = c(1, 7), expand = c(0.5, 0))
# right most position will be 7 + (7-1) * 0.5 = 10
вторая дает абсолютное расширение, добавленное к обоим концам оси:
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
scale_x_continuous(limits = c(1, 7), expand = c(0.5, 2))
# right most position will be 7 + (7-1) * 0.5 + 2 = 12
Наконец, то же самое расширение применяется к обоим концам оси.
Параметр expand_scale может быть точной настройкой только одного конца оси.
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
scale_x_continuous(limits = c(1, 7),
expand = expand_scale(mult = c(0, 0.5),
add = c(2, 0))
# left most position will be 1 - (7-1) * 0.0 -2 = -1,
# right most position will be 7 + (7-1) * 0.5 = 10
Это удобная функция для генерации векторов расширения масштаба для аргумента расширения scale__continuous и scale__discrete. Векторы расширений используются для добавления некоторого пространства между данными и осями.
expand_scale (mult = 0, add = 0)
Аргументы мульт
вектор коэффициентов расширения мультипликативного диапазона. Если длина 1, то нижняя и верхняя границы шкалы расширяются в мульт. Если длина 2, нижний предел расширяется с помощью mult 1, а верхний предел - с помощью mult[2]. добавлять
вектор аддитивных констант расширения диапазона. Если длина 1, то нижний и верхний пределы шкалы расширяются наружу на дополнительные единицы. Если длина 2, нижний предел увеличивается с помощью добавления 1, а верхний предел с помощью добавления [2].