Ну, вы просили обходной путь.Это обходной путь, позволяющий быстро добраться туда, куда вам нужно!
Сначала я создал функцию маркировки, которая дополняет процент пробелами слева.Это на самом деле функция, которая возвращает функцию, которая будет полезна в вашем ggplot2
коде.
label_fun <- function(width) {
function(x) str_pad(percent(x), width, side = "left")
}
И тогда вы можете точно определить, какую ширину вам нужно использовать, но это выглядит так вggplot2
сам код:
p1 <- ggplot(df, aes(x = date, y = percentage, col = id)) +
geom_line() +
scale_y_continuous(labels = label_fun(18))
(все остальное было таким же.)
В качестве отправной точки я проверил максимальную длину других ваших меток:
nchar(comma(max(df$count))) # 13
Однако этого было недостаточно, только потому, что разные символы имеют разную ширину (например, запятые очень узкие, очевидно).Поэтому я возился оттуда.Использование функции для создания функции таким образом сделало ее очень легкой и быстрой.См. Результаты ниже.