Відповіді:
Використання:
+ scale_y_continuous(labels = scales::percent)
Або вказати параметри форматування у відсотках:
+ scale_y_continuous(labels = scales::percent_format(accuracy = 1))
(команда labels = percent
застаріла з версії 2.2.1 ggplot2)
scales::percent(accuracy = 1)
не працює в тому, що *_format()
версії створюють функцію замість ... що б там percent()
не було створено , це правильно?
В принципі, ви можете передавати параметр будь-яку функцію переформатування labels
:
+ scale_y_continuous(labels = function(x) paste0(x*100, "%")) # Multiply by 100 & add %
Або
+ scale_y_continuous(labels = function(x) paste0(x, "%")) # Add percent sign
Відтворюваний приклад:
library(ggplot2)
df = data.frame(x=seq(0,1,0.1), y=seq(0,1,0.1))
ggplot(df, aes(x,y)) +
geom_point() +
scale_y_continuous(labels = function(x) paste0(x*100, "%"))
ggplot2
і scales
пакети можуть це робити:
y <- c(12, 20)/100
x <- c(1, 2)
library(ggplot2)
library(scales)
myplot <- qplot(as.factor(x), y, geom="bar")
myplot + scale_y_continuous(labels=percent)
Схоже, stat()
варіант був знятий, викликаючи повідомлення про помилку. Спробуйте це:
library(scales)
myplot <- ggplot(mtcars, aes(factor(cyl))) +
geom_bar(aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(labels=percent)
myplot
Позичена з @Deena вище, що модифікація функції міток є більш універсальною, ніж ви могли подумати. Наприклад, у мене був ggplot, де знаменник перелічених змінних дорівнював 140. Я використовував її приклад таким чином:
scale_y_continuous(labels = function(x) paste0(round(x/140*100,1), "%"), breaks = seq(0, 140, 35))
Це дозволило мені отримати свої відсотки на знаменнику 140, а потім розбити шкалу з кроком 25%, а не на дивні числа, за якими вона дефолтувала. Ключовим тут є те, що розбиття шкали все ще встановлюється початковим підрахунком, а не вашими відсотками. Тому перерви повинні бути від нуля до знаменника, причому третій аргумент "перерви" є знаменником, поділеним на скільки завгодно розривів міток (наприклад, 140 * 0,25 = 35).
library(scales)
для цього набирати текст .