Как работает 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].

Создать вектор расширения для весов

Другие вопросы по тегам