Подтвердить что ты не робот

Как я могу изменить цифры по оси Y в процентах на графике?

Как мы можем изменить ось y на проценты, как на рисунке? Я могу изменить диапазон оси y, но я не могу сделать это до процента. enter image description here

4b9b3361

Ответ 1

Использование:

+ scale_y_continuous(labels = scales::percent)

Или указать параметры форматирования для процента:

+ scale_y_continuous(labels = scales::percent_format(accuracy = 1))

(команда labels = percent устарела с версии 2.2.1 ggplot2)

Ответ 2

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

Ответ 3

В принципе, вы можете передать любую функцию переформатирования параметру 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, "%"))

Ответ 4

Заимствованный из @Deena выше, эта модификация функций для меток более универсальна, чем вы могли подумать. Например, у меня был ggplot, где знаменатель подсчитанных переменных был 140. Я использовал ее пример таким образом:

scale_y_continuous(labels = function(x) paste0(round(x/140*100,1), "%"), breaks = seq(0, 140, 35))

Это позволило мне получить мои проценты по знаменателю 140, а затем сломать шкалу с шагом 25%, а не странные цифры, по которым она по умолчанию.